使用Python处理CSV文件的全面指南

 更新时间:2025年07月30日 09:36:27   作者:XMYX-0  
在数据驱动开发中,‌结构化存储‌是数据处理流程的关键环节,CSV作为一种轻量级、跨平台的文件格式,广泛用于数据交换、日志记录及中小规模数据存储,本文将介绍如何使用 Python 处理 CSV 文件,需要的朋友可以参考下

常见问题及解决方案

问题:文件编码错误
解决方案:使用 encoding 参数指定文件编码,例如 encoding='utf-8'

问题:读取大文件时内存不足
解决方案:使用 chunksize 参数逐块读取数据:

for chunk in pd.read_csv('large_data.csv', chunksize=1000):
    process(chunk)  # 自定义处理函数

问题执行脚本报错

PS D:\bsop\zhijianaiweb> & D:/Python/Python39/python.exe c:/Users/wangzq/Desktop/csv.py
Traceback (most recent call last):
  File "c:\Users\wangzq\Desktop\csv.py", line 1, in <module>
    import csv
  File "c:\Users\wangzq\Desktop\csv.py", line 4, in <module>
    writer = csv.writer(file)
AttributeError: partially initialized module 'csv' has no attribute 'writer' (most likely due to a circular import)
PS D:\bsop\zhijianaiweb>

这个错误通常脚本文件命名为 csv.py,导致 Python 试图从你的脚本中导入 csv 模块,而不是标准库中的 csv 模块。解决方法如下:

  1. 重命名你的脚本:将 csv.py 更改为其他名字,例如 csv_example.py
  2. 删除 csv.pyc 文件(如果存在):在同一目录下查找 __pycache__ 文件夹,删除其中的 csv.cpython-39.pyc 文件。

使用 Python 处理 CSV 文件:全面指南

CSV(Comma-Separated Values)格式是一种广泛使用的数据交换格式,因其简单易懂而受到青睐。本文将介绍如何使用 Python 处理 CSV 文件,包括读取、写入、数据处理以及常用库的比较。

CSV 文件的基本概念

CSV 文件使用逗号分隔值,通常用于存储表格数据。每行代表一条记录,字段由逗号分隔。

使用内置 csv 模块

Python 提供了内置的 csv 模块,方便读取和写入 CSV 文件。

  • 写入 CSV 文件
import csv
with open('output.csv', mode='w', newline='') as file:
    writer = csv.writer(file)
    writer.writerow(['Name', 'Age'])
    writer.writerow(['Alice', 30])

  • 读取 CSV 文件
import csv

with open('data.csv', mode='r') as file:
    reader = csv.reader(file)
    for row in reader:
        print(row)

使用 pandas 库

pandas 是一个强大的数据处理库,适合进行复杂的数据分析。

  • 读取 CSV 文件
import pandas as pd

df = pd.read_csv('data.csv')
print(df.head())
  • 数据处理:可以轻松地进行数据过滤、修改和聚合。
# 过滤年龄大于25的人
filtered_df = df[df['Age'] > 25]
print(filtered_df)

# 统计年龄的平均值
average_age = df['Age'].mean()
print(f"Average Age: {average_age}")
  • 写入 CSV 文件
df.to_csv('filtered_output.csv', index=False)

处理缺失值

处理数据时,缺失值是常见问题。可以使用 fillna() 方法填充缺失值:

# 用0填充缺失值
df.fillna(0, inplace=True)

# 删除含有缺失值的行
df.dropna(inplace=True)

使用 DictReader 和 DictWriter

csv 模块还支持将 CSV 文件读取为字典格式,方便处理。

  • 读取为字典
import csv
with open('data.csv', mode='r') as file:
    reader = csv.DictReader(file)
    for row in reader:
        print(row['Name'], row['Age'])
  • 写入字典
import csv
with open('output.csv', mode='w', newline='') as file:
    fieldnames = ['Name', 'Age']
    writer = csv.DictWriter(file, fieldnames=fieldnames)
    writer.writeheader()
    writer.writerow({'Name': 'Bob', 'Age': 22})

案例分析

假设我们有一个包含员工信息的 CSV 文件 employees.csv,我们想要进行数据分析,比如找出薪水高于某个值的员工,并计算他们的平均薪水。

import pandas as pd

# 读取数据
df = pd.read_csv('employees.csv')

# 过滤薪水大于50000的员工
high_salary_df = df[df['Salary'] > 50000]

# 计算平均薪水
average_salary = high_salary_df['Salary'].mean()
print(f"Average Salary of High Earners: {average_salary}")

最佳实践

  • 始终检查数据的完整性:读取数据后,检查缺失值和异常值。
  • 使用相对路径:为保证代码的可移植性,使用相对路径读取文件。
  • 文件格式:尽量确保 CSV 文件的格式统一,避免出现不同的分隔符或编码问题。

性能比较

在处理大型 CSV 文件时,选择合适的库至关重要。csv 模块相对轻量,更适合简单读取和写入,而 pandas 提供了更丰富的数据操作功能,适合进行复杂分析。

结论

无论是使用内置的 csv 模块还是功能强大的 pandas 库,Python 都为处理 CSV 文件提供了灵活的解决方案。根据具体需求选择合适的方法,可以使数据处理更高效。

以上就是使用Python处理CSV文件的全面指南的详细内容,更多关于Python处理CSV文件的资料请关注脚本之家其它相关文章!

相关文章

  • 对Python中的@classmethod用法详解

    对Python中的@classmethod用法详解

    下面小编就为大家分享一篇对Python中的@classmethod用法详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-04-04
  • Python hug库构建快速可扩展的Web API框架使用详解

    Python hug库构建快速可扩展的Web API框架使用详解

    这篇文章主要介绍了Python hug库构建快速可扩展的Web API框架使用详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2024-02-02
  • Python 深入了解opencv图像分割算法

    Python 深入了解opencv图像分割算法

    本文主要介绍了Python通过opencv实现图像分割的详细过程与代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2021-11-11
  • 关于django python manage.py startapp 应用名出错异常原因解析

    关于django python manage.py startapp 应用名出错异常原因解析

    这篇文章主要介绍了关于django python manage.py startapp 应用名出错异常原因解析,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-12-12
  • 浅谈python编译pyc工程--导包问题解决

    浅谈python编译pyc工程--导包问题解决

    这篇文章主要介绍了python编译pyc工程--导包问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-03-03
  • Python密码学仿射密码及攻击单字母密码教程

    Python密码学仿射密码及攻击单字母密码教程

    这篇文章主要为大家介绍了Python密码学仿射及攻击单字母密码教程,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-05-05
  • Python真题案例之二分法查找详解

    Python真题案例之二分法查找详解

    这篇文章主要介绍了python实操案例练习,本文给大家分享的案例中主要讲解了二分法查找,需要的小伙伴可以参考一下
    2022-03-03
  • python 解决OpenCV显示中文字符的方法汇总

    python 解决OpenCV显示中文字符的方法汇总

    因工作需要,要在图片中显示中文字符,并且要求速度足够快,在网上搜罗一番后,总结下几个解决方法,对python 解决OpenCV显示中文字符相关知识感兴趣的朋友一起看看吧
    2024-04-04
  • python中把嵌套的列表合并成一个列表方法总结

    python中把嵌套的列表合并成一个列表方法总结

    python中list这种数据结构很常用到,下面这篇文章主要给大家介绍了关于python中把嵌套的列表合并成一个列表方法的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-11-11
  • python查看自己安装的所有库并导出的命令

    python查看自己安装的所有库并导出的命令

    这篇文章主要介绍了python查看自己安装的所有库并导出,主要包括查看安装的库通过命令查询,导出库安装文件执行命令,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-06-06

最新评论