Python批量处理CSV文件完全指南:10行代码搞定万行数据,新手也能快速上手

Python批量处理CSV文件完全指南:10行代码搞定万行数据,新手也能快速上手

Python批量处理CSV文件完全指南:10行代码搞定万行数据,新手也能快速上手

工作中经常遇到需要批量处理CSV文件的场景,比如合并上百个销售报表、提取指定列数据、统计数据汇总,手动处理不仅费时间还容易出错。用Python处理CSV文件特别简单,10行代码就能搞定万行数据,今天就给大家分享最实用的CSV处理技巧,新手也能快速学会。

一、环境准备,30秒搞定

不需要安装复杂的工具,Python自带csv模块就能处理大部分CSV操作,要是需要更复杂的数据分析,安装pandas就行:

bash
# 安装pandas(可选,处理大量数据更方便)
pip install pandas
避坑提醒:CSV文件尽量用UTF-8编码,不然容易出现中文乱码,保存的时候选择UTF-8编码,不要用GBK编码,不然读取的时候会报错。

二、基础操作:读取和写入CSV

1. 用自带csv模块读取CSV

适合处理简单的CSV文件,不需要安装额外库:

python
import csv

# 读取CSV文件
with open('销售数据.csv', 'r', encoding='utf-8') as f:
    reader = csv.reader(f)
    # 获取表头
    header = next(reader)
    print('表头:', header)
    # 遍历每一行数据
    for row in reader:
        print(row)  # 每一行是一个列表,按索引取值

2. 写入CSV文件

python
import csv

# 要写入的数据
data = [
    ['姓名', '销售额', '日期'],
    ['张三', 12000, '2026-04-01'],
    ['李四', 15000, '2026-04-01'],
    ['王五', 9000, '2026-04-01']
]

with open('销售数据_新.csv', 'w', encoding='utf-8', newline='') as f:
    writer = csv.writer(f)
    # 一次性写入所有行
    writer.writerows(data)
    # 也可以逐行写入
    # writer.writerow(['赵六', 18000, '2026-04-01'])
实用技巧:写入的时候加`newline=”`参数可以避免Windows下出现空行,这是很多新手容易踩的坑。

三、用pandas处理CSV,效率提升10倍

处理大量数据或者需要复杂操作的时候,用pandas特别方便,几行代码就能搞定:

1. 读取和基本查看

python
import pandas as pd

# 读取CSV文件
df = pd.read_csv('销售数据.csv', encoding='utf-8')

# 查看前5行数据
print(df.head())

# 查看数据基本信息(行数、列数、数据类型)
print(df.info())

# 查看统计信息(最大值、最小值、平均值等)
print(df.describe())

2. 常用操作,几行代码搞定

这些常用操作都是一行代码就能解决:
python
# 1. 提取指定列
df_new = df[['姓名', '销售额']]

# 2. 筛选数据:筛选销售额大于10000的记录
df_filter = df[df['销售额'] > 10000]

# 3. 排序:按销售额从高到低排序
df_sorted = df.sort_values(by='销售额', ascending=False)

# 4. 去重:去除重复的姓名记录
df_unique = df.drop_duplicates(subset='姓名')

# 5. 新增列:计算提成(销售额*10%)
df['提成'] = df['销售额'] * 0.1

# 6. 数据汇总:统计总销售额
total_sales = df['销售额'].sum()
print(f'总销售额:{total_sales}')

# 7. 分组统计:按日期统计每天的销售额
df_group = df.groupby('日期')['销售额'].sum().reset_index()

3. 合并多个CSV文件

如果有上百个CSV文件需要合并,几行代码就能搞定:

python
import os
import pandas as pd

# 存放CSV文件的文件夹路径
folder_path = './销售报表/'
# 获取所有CSV文件
csv_files = [f for f in os.listdir(folder_path) if f.endswith('.csv')]

# 合并所有文件
df_all = pd.DataFrame()
for file in csv_files:
    df = pd.read_csv(os.path.join(folder_path, file), encoding='utf-8')
    df_all = pd.concat([df_all, df], ignore_index=True)

# 保存合并后的文件
df_all.to_csv('合并后的销售数据.csv', index=False, encoding='utf-8')
print(f'合并完成,共{len(df_all)}条数据')
这个方法不管是10个文件还是1000个文件,都能快速合并,不用手动复制粘贴,效率提升几十倍。

四、常见问题解决

1. 中文乱码问题

如果读取CSV出现中文乱码,试试这几个方法:

python
# 方法1:指定encoding为gbk
df = pd.read_csv('文件.csv', encoding='gbk')

# 方法2:指定encoding为utf-8-sig
df = pd.read_csv('文件.csv', encoding='utf-8-sig')

# 方法3:自动检测编码(需要安装chardet)
import chardet
with open('文件.csv', 'rb') as f:
    result = chardet.detect(f.read())
df = pd.read_csv('文件.csv', encoding=result['encoding'])

2. 大文件读取优化

如果CSV文件特别大(几个G),一次性读入内存会爆,可以分块读取:

python
# 每次读取10000行
chunk_size = 10000
for chunk in pd.read_csv('大文件.csv', chunksize=chunk_size):
    # 处理每一块数据
    process(chunk)

3. 写入Excel

处理完的数据需要保存为Excel的话,直接用pandas就行:

python
df.to_excel('结果.xlsx', index=False, sheet_name='销售数据')

五、实战案例:批量统计月度销售报表

假设你有12个月的销售报表CSV,需要统计每个月的总销售额,输出到新文件:

python
import os
import pandas as pd

folder_path = './月度报表/'
result = []

for file in os.listdir(folder_path):
    if file.endswith('.csv'):
        # 提取月份(文件名比如"2026-01销售数据.csv")
        month = file.split('销售数据')[0]
        df = pd.read_csv(os.path.join(folder_path, file), encoding='utf-8')
        total = df['销售额'].sum()
        result.append({'月份': month, '总销售额': total})

# 保存结果
df_result = pd.DataFrame(result)
df_result.to_csv('月度销售统计.csv', index=False, encoding='utf-8')
print('统计完成')
整个过程只需要几秒钟,比手动打开每个文件统计快几十倍,还不会出错。

Python处理CSV文件真的特别简单,学会这些基础操作,工作中遇到批量处理数据的场景,再也不用手动加班了,几分钟就能搞定别人几个小时的工作量。赶紧试试吧,真的能大大提升工作效率!

© 版权声明

相关文章

暂无评论

none
暂无评论...