下面是详细的讲解Python操作CSV格式文件的方法大全的完整实例教程:
CSV是什么?
CSV(Comma-Separated Values)即逗号分隔值,是一种常见的文件格式,用于存储数据。CSV文件以纯文本形式存储,每行为一条记录,每个字段之间以逗号分隔。
Python如何操作CSV文件?
Python提供了许多内置的模块来操作CSV文件,其中最常用的有 csv
模块、pandas
模块和 numpy
模块。下面将逐一介绍它们的操作方法。
CSV模块
使用 csv
模块,我们可以轻松地读取和写入CSV文件。
首先我们需要导入 csv
模块:
import csv
读取CSV文件
读取CSV文件的步骤如下:
- 打开文件并建立
csv.reader
对象。 - 使用循环遍历每一行,并对每一行进行处理。
下面是一个示例,其中 person.csv
是一个包括姓名、年龄和性别的CSV文件:
import csv
with open('person.csv', 'r') as f:
reader = csv.reader(f)
for row in reader:
print(row)
输出结果为:
['Name', 'Age', 'Gender']
['Tom', '18', 'Male']
['Jerry', '20', 'Female']
['Bob', '25', 'Male']
注意: 当读取CSV文件时,csv.reader
默认以逗号作为分隔符,如果你的CSV文件中使用的是其他分隔符,可以通过设置 delimiter
参数来指定分隔符。
写入CSV文件
写入CSV文件的步骤如下:
- 打开文件并建立
csv.writer
对象。 - 使用
writerow
方法写入每一行。
下面是一个示例:
import csv
with open('person.csv', 'w', newline='') as f:
writer = csv.writer(f)
writer.writerow(['Name', 'Age', 'Gender'])
writer.writerow(['Jack', '30', 'Male'])
writer.writerow(['Lucy', '25', 'Female'])
以上代码将会在当前目录下生成一个名为 person.csv
的文件,并写入了三行数据。程序运行后,输出结果为空。
注意: 在写入CSV文件时,需要设置 newline
参数为空字符串,否则可能会出现每行之间多一个空行的情况。
Pandas模块
pandas
是一个专门用于数据分析和处理的Python库。它可以以表格形式轻松处理数据,并支持读取和写入多种格式的数据文件,其中包括CSV格式。
首先我们需要安装 pandas
:
!pip install pandas
读取CSV文件
读取CSV文件的步骤如下:
- 使用
pandas.read_csv
函数读取CSV文件。 - 使用
head
方法查看前几行数据。
下面是一个示例:
import pandas as pd
df = pd.read_csv('person.csv')
print(df.head())
输出结果为:
Name Age Gender
0 Tom 18 Male
1 Jerry 20 Female
2 Bob 25 Male
注意: 在读取CSV文件时,pandas.read_csv
函数会将第一行作为表格的列名。
写入CSV文件
写入CSV文件的步骤如下:
- 使用
pandas.DataFrame
函数创建一个DataFrame对象。 - 使用
to_csv
方法写入CSV文件。
下面是一个示例:
import pandas as pd
df = pd.DataFrame({'Name': ['Jack', 'Lucy'], 'Age': [30, 25], 'Gender': ['Male', 'Female']})
df.to_csv('person.csv', index=False)
以上代码将会在当前目录下生成一个名为 person.csv
的文件,并写入了两行数据。程序运行后,输出结果为空。
注意: 在写入CSV文件时,需要将 index
参数设置为 False
,否则会在文件中输出行号。
Numpy模块
numpy
是一个专门用于科学计算的Python库。它支持各种数学运算和数组操作,并支持读取和写入多种格式的数据文件,其中包括CSV格式。
首先我们需要安装 numpy
:
!pip install numpy
读取CSV文件
读取CSV文件的步骤如下:
- 使用
numpy.genfromtxt
函数读取CSV文件。 - 使用
print
方法查看数据。
下面是一个示例:
import numpy as np
data = np.genfromtxt('person.csv', delimiter=',', skip_header=1, dtype=None, names=['Name', 'Age', 'Gender'])
print(data)
输出结果为:
[(b'Tom', 18, b'Male') (b'Jerry', 20, b'Female') (b'Bob', 25, b'Male')]
注意: 在使用 numpy.genfromtxt
函数时,需要通过设置 skip_header
参数来跳过列名所在的第一行,并通过设置 names
参数来指定列名的名称。
写入CSV文件
写入CSV文件的步骤如下:
- 使用
numpy.savetxt
函数将数据写入CSV文件。
下面是一个示例:
import numpy as np
data = np.array([('Jack', 30, 'Male'), ('Lucy', 25, 'Female')], dtype=[('Name', 'U10'), ('Age', 'i4'), ('Gender', 'U10')])
np.savetxt('person.csv', data, delimiter=',', fmt='%s,%d,%s', header='Name,Age,Gender', comments='')
以上代码将会在当前目录下生成一个名为 person.csv
的文件,并写入了两行数据。程序运行后,输出结果为空。
注意: 在写入CSV文件时,需要通过设置 fmt
参数来指定每一列的格式,通过设置 header
参数来指定列名,通过设置 comments
参数为 ''
来去除行注释。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python操作CSV格式文件的方法大全 - Python技术站