📅  最后修改于: 2023-12-03 15:34:32.563000             🧑  作者: Mango
CSV (Comma Separated Values) 文件是一种常用的文本格式,它将数据以逗号为分隔符分割开来。Python 提供了多种方法来读取 CSV 文件,下面我们分别介绍这些方法。
Python 内置了 csv 模块,使用它可以方便地读取和写入 CSV 文件。常用的方法有:
csv.reader()
函数可以读取 CSV 文件中的每一行,返回一个迭代器。使用时需要传入文件对象和 CSV 文件中的分隔符。
import csv
with open('data.csv', 'r') as file:
reader = csv.reader(file, delimiter=',') # delimiter 为分隔符,默认为逗号
for row in reader:
print(row)
csv.DictReader()
函数与 csv.reader()
函数类似,但返回的是一个字典而不是列表,其中字典的键是 CSV 文件中的列名。
import csv
with open('data.csv', 'r') as file:
reader = csv.DictReader(file, delimiter=',') # delimiter 为分隔符,默认为逗号
for row in reader:
print(row)
pandas 是 Python 中常用的数据分析库,它可以方便地读取和处理多种格式的数据,包括 CSV 文件。
pandas.read_csv()
函数可以读取 CSV 文件,并返回一个 DataFrame 对象。
import pandas as pd
df = pd.read_csv('data.csv')
print(df)
如果 CSV 文件中包含中文等非 ASCII 字符,可以指定编码方式:
df = pd.read_csv('data.csv', encoding='utf-8')
以一个包含学生信息的 CSV 文件为例,演示如何使用 Python 读取并处理 CSV 文件。
首先,我们先创建一个包含学生信息的 CSV 文件,命名为 students.csv
:
name,age,gender,grade
小明,18,Male,100
小红,17,Female,98
小刚,19,Male,75
小丽,16,Female,82
然后,我们使用 csv.reader()
函数和 pandas.read_csv()
函数分别读取这个 CSV 文件:
import csv
import pandas as pd
# 使用 csv.reader() 函数读取 CSV 文件
with open('students.csv', 'r') as file:
reader = csv.reader(file, delimiter=',')
for row in reader:
print(row)
# 使用 pandas.read_csv() 函数读取 CSV 文件
df = pd.read_csv('students.csv', encoding='utf-8')
print(df)
运行结果:
['name', 'age', 'gender', 'grade']
['小明', '18', 'Male', '100']
['小红', '17', 'Female', '98']
['小刚', '19', 'Male', '75']
['小丽', '16', 'Female', '82']
name age gender grade
0 小明 18 Male 100
1 小红 17 Female 98
2 小刚 19 Male 75
3 小丽 16 Female 82
我们可以看到,使用 csv.reader()
函数读取 CSV 文件时,返回的是一个二维列表,其中包含了 CSV 文件中的所有行和列。而使用 pandas.read_csv()
函数读取 CSV 文件时,返回的是一个 DataFrame 对象,其中每一列都被视为一种类型的数据。我们可以方便地对 DataFrame 对象进行排序、过滤、统计等操作,使数据分析变得更加简单。