python文件操作相关(csv)

python文件操作相关(csv)

  • [1. csv 模块](#1. csv 模块)
    • [读取 CSV 文件](#读取 CSV 文件)
    • [读取 CSV 文件并转换为字典](#读取 CSV 文件并转换为字典)
    • [写入 CSV 文件](#写入 CSV 文件)
    • [写入 CSV 文件并使用字典](#写入 CSV 文件并使用字典)
  • [2. pandas 库](#2. pandas 库)
    • [读取 CSV 文件](#读取 CSV 文件)
    • 读取特定列
    • [写入 CSV 文件](#写入 CSV 文件)
    • [写入 CSV 文件并指定分隔符](#写入 CSV 文件并指定分隔符)
  • [3. 其他高级功能](#3. 其他高级功能)
  • 参考资料

在 Python 中,操作 CSV文件通常使用 csv 模块和 pandas 库,这两个工具提供了丰富的功能,可以方便地读取、写入和处理CSV 文件

1. csv 模块

csv 模块是 Python 标准库的一部分,提供了读取和写入 CSV 文件的基本功能

主要功能

  • 读取 CSV 文件:将 CSV 文件读取为 Python 列表或其他数据结构
  • 写入 CSV 文件:将 Python 列表或其他数据结构写入 CSV 文件
  • 处理特殊字符:支持处理包含逗号、换行符等特殊字符的字段

读取 CSV 文件

python 复制代码
import csv

# 读取 CSV 文件
with open('example.csv', mode='r', newline='', encoding='utf-8') as file:
    reader = csv.reader(file)
    for row in reader:
        print(row)

读取 CSV 文件并转换为字典

python 复制代码
import csv

# 读取 CSV 文件并转换为字典
with open('example.csv', mode='r', newline='', encoding='utf-8') as file:
    reader = csv.DictReader(file)
    for row in reader:
        print(row)

写入 CSV 文件

python 复制代码
import csv

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

# 写入 CSV 文件
with open('example.csv', mode='w', newline='', encoding='utf-8') as file:
    writer = csv.writer(file)
    writer.writerows(data)

写入 CSV 文件并使用字典

python 复制代码
import csv

# 数据
data = [
    {'Name': 'Alice', 'Age': 25},
    {'Name': 'Bob', 'Age': 30}
]

# 写入 CSV 文件
with open('example.csv', mode='w', newline='', encoding='utf-8') as file:
    fieldnames = ['Name', 'Age']
    writer = csv.DictWriter(file, fieldnames=fieldnames)
    writer.writeheader()
    writer.writerows(data)

2. pandas 库

pandas 是一个强大的数据分析库,支持读取和写入多种数据格式,包括 CSV 文件,pandas提供了丰富的数据处理功能,如数据筛选、排序、聚合等

主要功能

  • 读取 CSV 文件:将 CSV 文件加载为 DataFrame
  • 写入 CSV 文件:将 DataFrame 保存为 CSV 文件
  • 数据处理:支持数据筛选、排序、聚合等操作

读取 CSV 文件

python 复制代码
import pandas as pd

# 读取 CSV 文件
df = pd.read_csv('example.csv')
print(df)

读取特定列

python 复制代码
import pandas as pd

# 读取特定列
df = pd.read_csv('example.csv', usecols=['Name', 'Age'])
print(df)

写入 CSV 文件

python 复制代码
import pandas as pd

# 数据
data = {
    'Name': ['Alice', 'Bob'],
    'Age': [25, 30]
}

# 创建 DataFrame
df = pd.DataFrame(data)

# 写入 CSV 文件
df.to_csv('example.csv', index=False)

写入 CSV 文件并指定分隔符

python 复制代码
import pandas as pd

# 数据
data = {
    'Name': ['Alice', 'Bob'],
    'Age': [25, 30]
}

# 创建 DataFrame
df = pd.DataFrame(data)

# 写入 CSV 文件并指定分隔符
df.to_csv('example.csv', index=False, sep=';')

3. 其他高级功能

处理大文件

对于非常大的 CSV 文件,可以使用 pandas 的 read_csv 函数的 chunksize 参数分块

读取数据

python 复制代码
import pandas as pd

# 分块读取 CSV 文件
chunksize = 10000
chunks = []

for chunk in pd.read_csv('large_example.csv', chunksize=chunksize):
    # 处理每个 chunk
    processed_chunk = chunk[chunk['Age'] > 25]  # 例如,筛选年龄大于 25 的行
    chunks.append(processed_chunk)

# 合并所有 chunk
df = pd.concat(chunks)
print(df)

数据清洗

pandas 提供了丰富的数据清洗功能,如删除缺失值、替换值、重命名列等

python 复制代码
import pandas as pd

# 读取 CSV 文件
df = pd.read_csv('example.csv')

# 删除缺失值
df.dropna(inplace=True)

# 替换值
df['Age'].replace(25, 26, inplace=True)

# 重命名列
df.rename(columns={'Name': 'FullName'}, inplace=True)

print(df)

参考资料

相关推荐
Fleshy数模2 分钟前
深度学习核心:神经网络
python
书生的梦3 分钟前
《神经网络与深度学习》学习笔记(三):Transformer 模型
深度学习·神经网络·学习
咕噜企业签名分发-淼淼3 分钟前
浅谈云服务器在后端托管与签名分发场景中的应用价值
开发语言·php
nashane4 分钟前
HarmonyOS 6学习:深入解析CustomDialog嵌套弹窗中的this指向陷阱与解决方案
学习·华为·harmonyos
m沐沐5 分钟前
【机器学习】Python 实现垃圾邮件分类(随机森林 + 可视化 + 特征重要性)
人工智能·python·随机森林·机器学习·分类·pycharm·回归算法
在繁华处5 分钟前
Java从零到熟练(八):泛型与注解
java·开发语言·python
SilentSamsara6 分钟前
命令行工具开发:Click/Typer + 打包为独立二进制
linux·服务器·开发语言·前端·python·青少年编程·fastapi
百万小涵7 分钟前
从零接入大模型:通义千问、Ollama 与 OpenAI SDK 入门(RAG与Agent实战学习笔记①)
笔记·学习
Ulyanov8 分钟前
深入QML滑块与进度控制:构建动态数据可视化界面:QML+PySide6现代开发入门(六)
开发语言·python·算法·ui·信息可视化·雷达电子对抗仿真