Featured image of post Python Basic 13 csv 文件操作

Python Basic 13 csv 文件操作

本篇文章主要介绍Python对csv文件的常用操作

读取 CSV 文件

使用 csv 模块

1
2
3
4
5
6
import csv

with open('data.csv', mode='r', encoding='utf-8') as file:
    reader = csv.reader(file)
    for row in reader:
        print(row)  # 每行是一个列表 ٩(◕‿◕。)۶

用 pandas 读取 (最常用!)

1
2
3
4
import pandas as pd

df = pd.read_csv('data.csv')
print(df.head())  # 显示前5行数据 ฅ^•ﻌ•^ฅ

写入 CSV 文件

基础写入

1
2
3
4
5
6
7
import csv

data = [['Name', 'Age'], ['Alice', 25], ['Bob', 30]]

with open('output.csv', 'w', newline='') as file:
    writer = csv.writer(file)
    writer.writerows(data)  # 写入多行数据 (•̀ᴗ•́)و

pandas 写入

1
df.to_csv('output.csv', index=False)  # index=False 避免写入索引列 (ง •̀_•́)ง

数据处理技巧

筛选数据

1
2
3
4
5
# 选择特定列
ages = df['Age']

# 条件筛选
young_people = df[df['Age'] < 30]  # 筛选年龄小于30岁的人 ╰(*°▽°*)╯

添加/删除列

1
2
3
4
5
# 添加列
df['Senior'] = df['Age'] > 60

# 删除列
df = df.drop(columns=['Unnecessary'])  # 拜拜不需要的列 (╯‵□′)╯︵┻━┻

处理缺失值

1
2
3
4
5
# 删除包含缺失值的行
df = df.dropna()

# 填充缺失值
df = df.fillna(0)  # 用0填充 ✨

高级操作

合并 CSV 文件

1
2
3
4
5
6
7
8
df1 = pd.read_csv('data1.csv')
df2 = pd.read_csv('data2.csv')

# 垂直合并 (行数增加)
merged = pd.concat([df1, df2])

# 水平合并 (列数增加)
merged = pd.merge(df1, df2, on='ID')  # 根据ID列合并 (ノ◕ヮ◕)ノ*:・゚✧

分组统计

1
2
# 按城市分组计算平均年龄
city_stats = df.groupby('City')['Age'].mean()  # 统计学的快乐 ┬─┬ ノ( ゜-゜ノ)

处理日期

1
2
df['Date'] = pd.to_datetime(df['Date'])
df['Year'] = df['Date'].dt.year  # 提取年份部分 ٩(。•ω•。)و

小贴士 💡

  • 大文件处理:使用 chunksize 参数分块读取

    1
    2
    
    for chunk in pd.read_csv('big_file.csv', chunksize=1000):
        process(chunk)  # 每次处理1000行
    
  • 编码问题:如果遇到编码错误,试试 encoding='latin1'encoding='utf-8-sig'

  • 性能优化:dtype 参数指定列数据类型可以节省内存

希望这篇指南能帮助你轻松处理 CSV 数据!🎉 遇到问题时记得查阅文档哦~ (ノ◕ヮ◕)ノ*:・゚✧

Licensed under CC BY-NC-SA 4.0
使用 Hugo 构建
主题 StackJimmy 设计