📜  Python处理CSV数据(1)

📅  最后修改于: 2023-12-03 15:34:28.213000             🧑  作者: Mango

Python处理CSV数据

CSV(Comma Separated Values)是一种常见的文件格式,通常用于存储和交换表格数据。Python提供了多种处理CSV数据的库,例如csv、pandas和numpy等。在本文中,我将介绍一些基本的CSV读取和写入操作并提供相应的代码示例。

CSV读取操作
使用csv库

我们可以使用csv库中的csv.reader()函数来读取CSV文件。该函数返回一个迭代器,可以对文件中的每一行进行迭代,并解析其中的字段。以下代码演示了如何使用csv库读取CSV文件并将每行数据打印出来:

import csv

with open("data.csv", "r") as file:
    reader = csv.reader(file)
    for row in reader:
        print(row)
使用pandas库

pandas库可以更方便地读取CSV文件,并将其转换为DataFrame对象。以下代码演示了如何使用pandas库读取CSV文件并将其打印出来:

import pandas as pd

df = pd.read_csv("data.csv")
print(df)
CSV写入操作
使用csv库

我们可以使用csv库中的csv.writer()函数来写入CSV文件。该函数接受一个文件对象,并以逗号分隔的形式将数据写入文件。以下代码演示了如何使用csv库写入CSV文件:

import csv

with open('output.csv', mode='w', newline='') as file:
    writer = csv.writer(file)
    writer.writerow(['Name', 'Age', 'Gender'])
    writer.writerow(['John', '25', 'Male'])
    writer.writerow(['Jane', '30', 'Female'])
使用pandas库

pandas库可以将DataFrame对象直接写入CSV文件。以下代码演示了如何使用pandas库将DataFrame对象写入CSV文件:

import pandas as pd

data = {'Name': ['John', 'Jane'], 'Age': [25, 30], 'Gender': ['Male', 'Female']}
df = pd.DataFrame(data)
df.to_csv('output.csv', index=False)
CSV处理技巧
跳过头部

CSV文件通常有一个头部行,其中包含列名。在读取文件时,我们可以使用csv库中的next()函数跳过头部行并开始从下一行开始读取数据。以下代码演示了如何使用next()函数跳过头部行:

import csv

with open("data.csv", "r") as file:
    reader = csv.reader(file)
    next(reader) # 跳过头部行
    for row in reader:
        print(row)
指定分隔符

除了逗号,CSV文件中的分隔符也可以是其他字符,例如制表符或分号等。在读取文件时,我们可以使用csv库的delimiter参数指定分隔符。以下代码演示了如何指定制表符作为分隔符:

import csv

with open("data.csv", "r") as file:
    reader = csv.reader(file, delimiter='\t')
    for row in reader:
        print(row)
指定编码

如果CSV文件中包含非ASCII字符,例如中文或日文等,我们需要指定正确的字符编码来正确地读取文件。在读取文件时,我们可以使用Python的内置模块codecs指定编码。以下代码演示了如何指定UTF-8编码读取CSV文件:

import csv
import codecs

with codecs.open("data.csv", "r", "utf-8") as file:
    reader = csv.reader(file)
    for row in reader:
        print(row)
结语

CSV是一种常见的文件格式,在Python中处理CSV文件非常方便。本文介绍了使用csv和pandas库读取和写入CSV文件的基本操作,以及一些实用的CSV处理技巧,希望对你有所帮助。