python 根据csv表头、列号读取数据的实现

目录
  • 根据csv表头、列号读取数据的实现
    • 读取csv文件
    • 根据表头获取列数据
    • 根据列号读取列数据
    • 根据index名获取行数据
    • 根据列号读取行数据
    • iloc和loc区别
  • 读取csv文件并输出特定列
    • 源代码如下

根据csv表头、列号读取数据的实现

读取csv文件

cvs数据截图如下

设置index_col=0,目的是设置第一列name为index(索引),方便下面示例演示

data = pandas.read_csv(input1, index_col=0)

输出结果

price  o_price  date  quan
name                              
wood    85.00    49.99  2006   797
chair  102.50    49.99  2006   799
bed     77.00    49.99  2006   795
lamp   162.50    49.99  2006   800
sofa   699.99   269.99  2002  3094
table  602.00   269.99  2002  3093

根据表头获取列数据

data[['o_price', 'quan']
# 或者
data.loc[:, ['o_price', 'quan']

输出结果

o_price  quan
name                
wood     49.99   797
chair    49.99   799
bed      49.99   795
lamp     49.99   800
sofa    269.99  3094
table   269.99  3093

根据列号读取列数据

data.iloc[:, [3, 4]]

输出结果

date  quan
name             
wood   2006   797
chair  2006   799
bed    2006   795
lamp   2006   800
sofa   2002  3094
table  2002  3093

根据index名获取行数据

data.loc[['wood', 'sofa'], :]

输出结果

price  o_price  date  quan
name                             
wood   85.00    49.99  2006   797
sofa  699.99   269.99  2002  3094

根据列号读取行数据

data.iloc[[0, 1], :]

输出结果

price  o_price  date  quan
name                             
wood    85.0    49.99  2006   797
chair  102.5    49.99  2006   799

iloc和loc区别

loc是根据dataframe的具体标签选取列,而iloc是根据标签所在的位置,从0开始计数。

读取csv文件并输出特定列

其实,最开始好不容易输出了指定列,结果第二天不小心删了什么东西,然后就一直报错。

看上去和前一天能正常输出的没有什么差别。折腾了一天多总算是找到问题是什么了,是个很简单的问题。

其实不是错误,只是因为选用的读取方式不同,所以一直报错。

源代码如下

import csv
import pandas as pd 
sheet_name = "员工信息表.csv"
 
#数据文件有问题数据
with open(sheet_name,encoding = "utf-8",errors = "ignore") as f:
    
    #可通过列名读取列值,表中有空值
    data= csv.DictReader(_.replace("\x00","") for _ in f)
    headers = next(data)
    print(headers)
    for row in data:
        print(row)
        if row['员工状态'] == '2':
            print(row)
 
    #不可通过列名读取列值,通过第几列来读取
    #data =csv.reader(_.replace("\x00","") for _ in f)
    headers = next(data)
    print(headers)
    for row in data:
        print(row)
        if row[12]=='2':
            print(row)

读取csv文件需要采用:

with open(sheet_name,encoding = "utf-8",errors = "ignore") as f:

如果不加errors = "ignore"会报错:

UnicodeDecodeError: 'utf-8' codec can't decode byte 0xbb in position 0: invalid start byte

通过csv.reader读取csv文件,然后使用列名row['员工状态']输出列值会报错:

“TypeError: list indices must be integers or slices, not str”

根据这个报错百度了好久,一直没有找到解决方法。

虽然现在最终效果达到了,但是并不清楚具体原因。

源数据表里面问题好多啊,感觉需要先做数据清洗。唉!好难啊!

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • python的pandas工具包,保存.csv文件时不要表头的实例

    用pandas处理.csv文件时,有时我们希望保存的.csv文件没有表头,于是我去看了DataFrame.to_csv的document. 发现只需要再添加header=None这个参数就行了(默认是True), 下面贴上document: DataFrame.to_csv(path_or_buf=None, sep=', ', na_rep='', float_format=None, columns=None, header=True, index=True, index_label=Non

  • Python如何读取csv文件时添加表头/列名

    目录 读取csv文件时添加表头/列名 解决方法 更改csv文件表头 读取csv文件时添加表头/列名 有时,我们读取的csv文件数据时发现没有表头/列名,是因为Python读取csv文件数据本来就没有表头,用pandas.read读取时,则第一行自动会被识别为columns,从而给后面的分析造成不便,这时候需要我们在读取文件数据的同时添加列名. 解决方法 1.在读取文件数据之后再定义列名 df = pd.read_csv('评论.csv',header=None) df.columns = ["昵

  • python csv实时一条一条插入且表头不重复问题

    目录 csv实时一条条插入且表头不重复 连续写入txt csv写入时指定表头 练习 csv实时一条条插入且表头不重复 1.主要就是在最开始插入的时候判断下表头或者表格是否有数据 2.用csv reader(然后主要写是a追加模式,读是r模式) import csv with open("111.csv","a",encoding='utf-8',newline="") as f: k = csv.writer(f, dialect="e

  • python读csv文件时指定行为表头或无表头的方法

    pd.read_csv()方法中header参数,默认为0,标签为0(即第1行)的行为表头.若设置为-1,则无表头.示例如下: (1)不设置header参数(默认)时: df1 = pd.read_csv('target.csv',encoding='utf-8') df1 (2)header=1时: import pandas as pd df2 = pd.read_csv('target.csv',encoding='utf-8',header=1) df2 (3)header=-1时(可用

  • python 根据csv表头、列号读取数据的实现

    目录 根据csv表头.列号读取数据的实现 读取csv文件 根据表头获取列数据 根据列号读取列数据 根据index名获取行数据 根据列号读取行数据 iloc和loc区别 读取csv文件并输出特定列 源代码如下 根据csv表头.列号读取数据的实现 读取csv文件 cvs数据截图如下 设置index_col=0,目的是设置第一列name为index(索引),方便下面示例演示 data = pandas.read_csv(input1, index_col=0) 输出结果 price  o_price

  • Python实现葵花8号卫星数据自动下载实例

    目录 一:数据源介绍 二:FTP服务器描述 三: 程序描述 四:注意事项 五:代码 一:数据源介绍 本篇文章介绍的是使用python实现对葵花8号卫星数据进行自动下载. 葵花8号卫星是日本的一颗静止轨道气象卫星,覆盖范围为60S-60N, 80E-160W,除了提供十分钟一幅的原始卫星影像外,还提供了如气溶胶光学厚度(AOT,也叫AOD).叶绿素A.海表温度.云层厚度以及火点等多种产品,这些数据都可以进行下载. 二:FTP服务器描述 首先需要在葵花8官网申请帐号. 可以通过FTP(ftp.ptr

  • Python基于csv模块实现读取与写入csv数据的方法

    本文实例讲述了Python基于csv模块实现读取与写入csv数据的方法.分享给大家供大家参考,具体如下: 通过csv模块可以轻松读取格式为csv的文件,而且csv模块是python内置的,不需要下载就可以直接用. 一.准备csv文件 文件名是 e:\t.csv,文件内容: org_id,org_name,state,emp_id 1,销售1,'1',123 2,销售2,'0',321 3,销售3,'1',231 1,,'1',1234 二.读取csv数据 代码非常简单: # -*- coding

  • Python从csv文件中读取数据及提取数据的方法

    目录 1.从csv文件中读取数据 2.数据切割 数据保存在csv文件中 1.从csv文件中读取数据 参数header=None的有无 (1)没有header=None--直接将csv表中的第一行当作表头 # 读取数据 import pandas as pd data = pd.read_csv("data1.csv") print(data) 打印结果为: (2)有header=None--自动添加第一行当作表头 # 读取数据 import pandas as pd data = pd

  • 使用python获取csv文本的某行或某列数据的实例

    站长用Python写了一个可以提取csv任一列的代码,欢迎使用.Github链接 csv是Comma-Separated Values的缩写,是用文本文件形式储存的表格数据,比如如下的表格: 就可以存储为csv文件,文件内容是: No.,Name,Age,Score 1,Apple,12,98 2,Ben,13,97 3,Celia,14,96 4,Dave,15,95 假设上述csv文件保存为"A.csv",如何用Python像操作Excel一样提取其中的一列,即一个字段,利用Pyt

  • python:pandas合并csv文件的方法(图书数据集成)

    数据集成:将不同表的数据通过主键进行连接起来,方便对数据进行整体的分析. 两张表:ReaderInformation.csv,ReaderRentRecode.csv ReaderInformation.csv: ReaderRentRecode.csv: pandas读取csv文件,并进行csv文件合并处理: # -*- coding:utf-8 -*- import csv as csv import numpy as np # ------------- # csv读取表格数据 # ---

  • python中csv文件创建、读取及修改等操作实例

    1. python中创建新的csv文件 (1). 使用csv.writer()创建: 代码如下: import csv headers = ['学号','姓名','分数'] rows = [('202001','张三','98'), ('202002','李四','95'), ('202003','王五','92')] with open('score.csv','w',encoding='utf8',newline='') as f : writer = csv.writer(f) write

  • python数据分析之将爬取的数据保存为csv格式

    目录 csv文件 python的csv模块 从csv文件读取内容 写入csv文件 运用实例 数据准备 将数据存为字典的形式 总结 csv文件 一种用逗号分割来实现存储表格数据的文本文件. python的csv模块 python遍历代码: arr = [12, 5, 33, 4, 1] #遍历输出1 for i in range(0, len(arr)): item = arr[i] print(item) #遍历输出2 for item in arr: print(item) #遍历输出3 st

  • Python数据读写之Python读写CSV文件

    目录 1. 读取CSV文件 csv.reader() 2. 写入CSV文件 1. 读取CSV文件 csv.reader() 该方法的作用相当于就是通过 ',' 分割csv格式的数据,并将分割好的每行数据存入列表中,并且还去除了每行最后分割产生的数据尾部的空格.换行符.制表符等等. import csv with open('data.csv',mode='r',encoding='utf-8-sig',newline='') as File: # 使用csv.reader()将文件中的每行数据读

随机推荐