当前位置: 首页 > ai >正文

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 csvwith 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 csvwith 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 pddf = 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()

http://www.xdnf.cn/news/9900.html

相关文章:

  • REALTECK瑞昱推出RTS5411T USB3.2 Gen1x1 超高速 USB 集线器控制器原厂代理分销经销一级代理分销经销
  • 上传图片转成3D VR效果 / VR效果在项目中落地实践 / 应用到了用photo-sphere-viewer + A-Frame +Threejs 通过不同的技术分别实现了3D VR效果
  • 一种冷库低成本节能方案:不改动原有装备,实现年省电≥20%
  • 一台笔记本实现基因表达敲除?!scTenifoldKnk 单细胞基因模拟敲除教程
  • 差分互连的串扰-信号与电源完整性
  • opencut:如何用AI工具把中文图片/视频翻译成英语、日语、俄语等100多种语言!
  • 事务Transaction
  • 【聚焦国产8K全画幅摄像机应用】多图预警!
  • 圣杯布局和双飞翼布局的实现方法
  • 华为OD机试_2025 B卷_最小循环子数组(Python,100分)(附详细解题思路)
  • 技术文档撰写指南:从结构到细节的全流程解析
  • 【面板数据】上市公司供应链网络地位数据(2001-2024年)
  • 【C1】【一维数组】看电影
  • 重说话题“如何写好一份技术文档”
  • 经典深度学习网络【一天了解一个ok?】【基本点创新点】
  • Java中的栈数据结构及其常用方法
  • Cesium 报错:自定义材质报‘texture2D‘ : no matching overloaded function found错误
  • 【Unity】 HTFramework框架(六十六)缺省的运行时组件检视器
  • 「动态规划::状压DP」网格图递推 / AcWing 292|327(C++)
  • 2025京麟CTF-mememe
  • SpringBoot:统一功能处理、拦截器、适配器模式
  • GoC新阶段课程研发
  • jdbcTemplate防止注入写法
  • CompletableFuture高级编程指南
  • Python常用的内置函数
  • web ui自动化工具playwright
  • 【文献阅读】Hierarchical Reinforcement Learning: A ComprehensiveSurvey
  • WordPress_suretriggers 权限绕过漏洞复现(CVE-2025-3102)
  • 在Mathematica中求解带阻尼的波方程
  • 造血干细胞移植中,选择合适供者需综合多因素考量