Home  >  Article  >  Backend Development  >  Detailed explanation of Python's method of reading and writing csv format files

Detailed explanation of Python's method of reading and writing csv format files

高洛峰
高洛峰Original
2017-03-19 15:52:392921browse

Reading and writing csv format files with python

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.

The csv file is read as dict

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为每条数据的处理函数

Multiple pieces of data of type dict are written into csv files

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.

Read csv file into DataFrame

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)

DataFrame writes into csv file

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!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn