Home > Article > Backend Development > Detailed explanation of Python's method of reading and writing csv format files
In data analysis, it is often necessary to access data from csv format files and write data to csv files. It is very convenient and trouble-free to directly read the data in the csv file into dict type and DataFrame. The following code takes iris data as an example.
Code
# -*- coding: utf-8 -*- import csv with open('E:/iris.csv') as csvfile: reader = csv.DictReader(csvfile, fieldnames=None) # fieldnames默认为None,如果所读csv文件没有表头,则需要指定 list_1 = [e for e in reader] # 每行数据作为一个dict存入链表中 csvfile.close() print list_1[0]
Output
{'Petal.Length': '1.4', 'Sepal.Length': '5.1', 'Petal.Width': '0.2', 'Sepal.Width': '3.5', 'Species': 'setosa'}
If each piece of data read needs to be processed separately and the amount of data is large, It is recommended to process them one by one and then put them in.
list_1 = list() for e in reader: list_1.append(your_func(e)) # your_func为每条数据的处理函数
Code
# 数据 data = [ {'Petal.Length': '1.4', 'Sepal.Length': '5.1', 'Petal.Width': '0.2', 'Sepal.Width': '3.5', 'Species': 'setosa'}, {'Petal.Length': '1.4', 'Sepal.Length': '4.9', 'Petal.Width': '0.2', 'Sepal.Width': '3', 'Species': 'setosa'}, {'Petal.Length': '1.3', 'Sepal.Length': '4.7', 'Petal.Width': '0.2', 'Sepal.Width': '3.2', 'Species': 'setosa'}, {'Petal.Length': '1.5', 'Sepal.Length': '4.6', 'Petal.Width': '0.2', 'Sepal.Width': '3.1', 'Species': 'setosa'} ] # 表头 header = ['Petal.Length', 'Sepal.Length', 'Petal.Width', 'Sepal.Width', 'Species'] print len(data) with open('E:/dst.csv', 'wb') as dstfile: #写入方式选择wb,否则有空行 writer = csv.DictWriter(dstfile, fieldnames=header) writer.writeheader() # 写入表头 writer.writerows(data) # 批量写入 dstfile.close()
The above code writes the entire data into the csv file. If the amount of data is large and you want to real-time To see how much data has been written, use the writerows function.
Code
# 读取csv文件为DataFrame import pandas as pd dframe = pd.DataFrame.from_csv('E:/iris.csv')
You can also twist it a little:
import csv import pandas as pd with open('E:/iris.csv') as csvfile: reader = csv.DictReader(csvfile, fieldnames=None) # fieldnames默认为None,如果所读csv文件没有表头,则需要指定 list_1 = [e for e in reader] # 每行数据作为一个dict存入链表中 csvfile.close() dfrme = pd.DataFrame.from_records(list_1)
dfrme.to_csv('E:/dst.csv', index=False) # 不要每行的编号
The above is the detailed content of Detailed explanation of Python's method of reading and writing csv format files. For more information, please follow other related articles on the PHP Chinese website!