由于工作需要,需要用python提取csv文件中内容,这篇文章主要是记录下用pandas读取csv文件内容的一些简单的操作,适合python初学者。
首选需要安装pandas
查看是否已安装pandas
pip list
若没有安装,则使用下面语句安装即可
pip install pandas
pandas安装完成后,下面来记录下读取csv文件
首先看看csv文件内容
step1:需要把 csv和pandas引入进来
获取字段
import csvimport pandas as pddef reader(master_table): file = 'csv/' + master_table + '.csv' df = pd.read_csv(file,encoding='GB18030') #如果不写encoding='GB18030',则可能会出现中文乱码 labels = list(df.columns.values) #获取所有字段 print(labels)if __name__ == "__main__": reader('test')
执行结果如下,这是csv文件第一行的内容
['type_name', 'id', 'name', 'category', 'price']
读取csv内容:
import csvimport pandas as pddef reader(master_table): file = 'csv/' + master_table + '.csv' df = pd.read_csv(file,encoding='GB18030') #如果不写encoding='GB18030',则可能会出现中文乱码 labels = list(df.columns.values) #获取所有字段 #遍历csv文件内容 for index,row in df.iterrows(): if(index > 1): print(row) print("第一本书的名称%s,价格为%d元" %(row['name'],int(row['price']))) exit()if __name__ == "__main__": reader('test')
返回结果如下:
分组
import csvimport pandas as pddef reader(master_table): file = 'csv/' + master_table + '.csv' df = pd.read_csv(file,encoding='GB18030') #如果不写encoding='GB18030',则可能会出现中文乱码 groupList = df.groupby('category') for category,group in groupList: print(category) print(group)if __name__ == "__main__": reader('test')
输出结果:
对分组数据进行遍历
import csvimport pandas as pddef reader(master_table): file = 'csv/' + master_table + '.csv' df = pd.read_csv(file,encoding='GB18030') #如果不写encoding='GB18030',则可能会出现中文乱码 groupList = df.groupby('category') for category,group in groupList: for row_index,row in group.iterrows(): print(row_index) print(row) print(row['name']) exit()if __name__ == "__main__": reader('test')
输出结果:
统计每个分组中数量
import csvimport pandas as pddef reader(master_table): file = 'csv/' + master_table + '.csv' df = pd.read_csv(file,encoding='GB18030') #如果不写encoding='GB18030',则可能会出现中文乱码 groupList = df.groupby('category') print(groupList.size()) exit()if __name__ == "__main__": reader('test')
输出结果: