Python学习(4) ----- Python的CSV文件处理

在 Python 中,读取 CSV 文件最常用的方式是使用标准库中的 csv 模块。下面是详细说明和使用示例:


✅ 一、准备一个 CSV 文件示例(假设文件名为 data.csv

name,age,city
Alice,30,New York
Bob,25,Los Angeles
Charlie,35,Chicago

二、读取 CSV 文件的基本方法

方式一:使用 csv.reader(按行读取为列表)

import csv

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

输出:

['name', 'age', 'city']
['Alice', '30', 'New York']
['Bob', '25', 'Los Angeles']
['Charlie', '35', 'Chicago']

方式二:使用 csv.DictReader(每行转为字典)

import csv

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

输出:

{'name': 'Alice', 'age': '30', 'city': 'New York'}
{'name': 'Bob', 'age': '25', 'city': 'Los Angeles'}
{'name': 'Charlie', 'age': '35', 'city': 'Chicago'}

三、其他说明

  • with open(...) 是上下文管理器,自动关闭文件。
  • 默认按逗号分隔,如需自定义可用 delimiter=';'
  • csv.reader 读取的是列表,而 csv.DictReader 会使用首行为键自动转字典。

四、常见操作进阶

读取到一个列表中:

rows = []
with open('data.csv', mode='r', encoding='utf-8') as f:
    reader = csv.DictReader(f)
    rows = list(reader)

print(rows)

✅ 五、推荐:用 pandas 读取 CSV(更强大)

import pandas as pd

df = pd.read_csv('data.csv')
print(df)

输出是一个表格样式的 DataFrame。


pandas 是 Python 中一个功能强大的数据分析和处理库,常用于 表格数据(类似 Excel、CSV) 的读取、处理、分析和导出。


一、安装 pandas(如果你还没有安装)

pip install pandas

✅ 二、pandas 的基本使用示例

1. 导入库

import pandas as pd

2. 读取 CSV 文件

df = pd.read_csv('data.csv')  # 自动解析表头
print(df)

假设 data.csv 内容为:

name,age,city
Alice,30,New York
Bob,25,Los Angeles
Charlie,35,Chicago

输出:

      name  age         city
0    Alice   30     New York
1      Bob   25  Los Angeles
2  Charlie   35      Chicago

三、常见操作(初学者必学)

✅ 访问列

print(df['name'])      # 获取 name 列
print(df[['name', 'age']])  # 多列

✅ 访问行

print(df.iloc[0])      # 按位置取第1行
print(df.loc[1])       # 按索引取第2行

✅ 筛选数据

print(df[df['age'] > 30])  # 筛选 age > 30 的行

✅ 添加新列

df['new_col'] = df['age'] + 10

✅ 删除列

df.drop('new_col', axis=1, inplace=True)

四、写回 CSV

df.to_csv('output.csv', index=False)  # index=False 不保存行号

五、统计分析

print(df.describe())   # 数值列的统计信息
print(df['age'].mean())  # 平均年龄

六、快速复习图

功能 示例
读文件 pd.read_csv("file.csv")
写文件 df.to_csv("out.csv")
筛选 df[df["age"] > 30]
添加列 df["x"] = df["y"] + 1
删除列 df.drop("col", axis=1)
行访问 df.loc[0]df.iloc[0]
统计 df.describe()

你可能感兴趣的:(Python,python,学习,开发语言)