CSV(逗号分隔值)格式是存储表格数据的一种常见且直接的方式。要表示 CSV 文件,它应该具有 .csv
文件扩展名。
现在,我们继续看一个 .csv
文件及其数据示例。
SN, Name, City
1, Michael, New Jersey
2, Jack, California
在 Python 中处理 CSV 文件
Python 提供了一个专门的 csv
模块来处理 csv 文件。该模块包含各种方法来执行不同的操作。
但是,我们首先需要使用以下方法导入模块
import csv
使用 Python 读取 CSV 文件
csv
模块提供了 csv.reader()
函数来读取 CSV 文件。
假设我们有一个名为 people.csv
的 csv
文件,其中包含以下条目。
Name, Age, Profession
Jack, 23, Doctor
Miller, 22, Engineer
现在,让我们读取这个 csv
文件。
import csv
with open('people.csv', 'r') as file:
reader = csv.reader(file)
for row in reader:
print(row)
输出
['Name', 'Age', 'Profession'] ['Jack', '23', 'Doctor'] ['Miller', '22', 'Engineer']
在这里,我们使用以下方法以读取模式打开了 people.csv 文件
with open(airtravel.csv', 'r') as file:
然后我们使用 csv.reader()
函数读取文件。要了解有关读取 csv 文件的更多信息,请参阅 Python 读取 CSV 文件。
csv.DictReader()
实现更易读的代码csv.DictReader()
类可用于将 CSV 文件读取到字典中,提供了一种更用户友好且易于访问的方法。
假设我们要读取以下 people.csv
文件。
Name, Age, Profession
Jack, 23, Doctor
Miller, 22, Engineer
现在让我们读取这个文件。
import csv
with open('people.csv', 'r') as file:
csv_file = csv.DictReader(file)
for row in csv_file:
print(row)
输出
{'SN': '1', ' Name': ' Michael', ' City': ' New Jersey'} {'SN': '2', ' Name': ' Jack', ' City': ' California'}
在此示例中,我们从 people.csv
文件中读取数据,并将每一行作为字典打印出来。
在这里,我们使用了 csv.DictReader(file)
,它将 CSV 文件的第一行视为列标题,并将后续每一行视为数据记录。
使用 Python 写入 CSV 文件
csv
模块提供了 csv.writer()
函数来写入 CSV 文件。
让我们看一个例子。
import csv
with open('protagonist.csv', 'w', newline='') as file:
writer = csv.writer(file)
writer.writerow(["SN", "Movie", "Protagonist"])
writer.writerow([1, "Lord of the Rings", "Frodo Baggins"])
writer.writerow([2, "Harry Potter", "Harry Potter"])
当我们运行上述程序时,将创建一个 protagonist.csv 文件,其中包含以下内容
SN,Movie,Protagonist 1,Lord of the Rings,Frodo Baggins 2,Harry Potter,Harry Potter
在此示例中,我们以写入模式创建了名为 protagonist.csv
的 CSV 文件。
然后我们使用 csv.writer()
函数写入文件。要了解有关写入 csv 文件的更多信息,请参阅 Python 写入 CSV 文件。
这里,
writer.writerow(["SN", "Movie", "Protagonist"])
将包含列名称的标题行写入 CSV 文件。writer.writerow([1, "指环王", "弗罗多·巴金斯"])
将第一行数据写入 CSV 文件。writer.writerow([2, "哈利·波特", "哈利·波特"])
将第二行数据写入 CSV 文件。
我们可以使用 csv.DictWriter()
类将字典数据写入 CSV 文件,这对于更结构化的数据非常有用。例如,
import csv
with open('players.csv', 'w', newline='') as file:
fieldnames = ['player_name', 'fide_rating']
writer = csv.DictWriter(file, fieldnames=fieldnames)
writer.writeheader()
writer.writerow({'player_name': 'Magnus Carlsen', 'fide_rating': 2870})
writer.writerow({'player_name': 'Fabiano Caruana', 'fide_rating': 2822})
writer.writerow({'player_name': 'Ding Liren', 'fide_rating': 2801})
该程序创建了一个 players.csv 文件,其中包含以下条目
player_name,fide_rating
Magnus Carlsen,2870
Fabiano Caruana,2822
Ding Liren,2801
在此示例中,我们使用 csv.DictWriter(file, fieldnames=fieldnames)
将数据写入 players.csv 文件。
writer.writeheader()
函数将这些列标题写入文件的第一行。
每次调用 writerow()
都会向 CSV 文件添加一个新行,其中每个字典都表示一个记录,其 player_name
和 fide_rating
作为与列对应的键。
使用 Python Pandas 处理 CSV 文件
Pandas 是 Python 中用于数据操作和分析的流行数据科学库。
如果我们处理大量数据块,最好使用 pandas 来处理 CSV 文件,以便于和高效。
注意:在我们使用 pandas 之前,我们需要安装并导入它。要了解更多信息,请访问 安装和导入 Pandas。
读取 CSV 文件
要使用 pandas 读取 CSV 文件,我们可以使用 read_csv() 函数。
import pandas as pd
pd.read_csv("people.csv")
在这里,程序从当前目录读取 people.csv
。
写入 CSV 文件
要写入 CSV 文件,我们需要使用 DataFrame 的 to_csv() 函数。
import pandas as pd
# creating a data frame
df = pd.DataFrame([['Jack', 24], ['Rose', 22]], columns = ['Name', 'Age'])
# writing data frame to a CSV file
df.to_csv('person.csv')
在这里,我们使用 pd.DataFrame()
方法创建了一个 DataFrame。然后,调用此对象的 to_csv()
函数,以写入 person.csv
。
另请阅读