Python基础 _Pandas_csv、excel文件操作

1. 读取文件

1.1 读取 CSV 文件 read_csv

Pandas 可以通过 pd.read_csv() 函数读取 CSV 文件。常用参数包括:

  • filepath_or_buffer: 文件路径或 URL。
  • sep: 指定分隔符,默认为逗号(,)。
  • header: 指定行号作为列名,默认是第一行。
  • names: 如果文件中没有列名,可以通过该参数传入列名列表。
  • index_col: 指定哪一列作为索引列。
import pandas as pd

df = pd.read_csv('data.csv')
1.2 读取 Excel 文件 read_excel

Pandas 通过 pd.read_excel() 函数来读取 Excel 文件。常用参数包括:

  • io: 文件路径或文件对象。
  • sheet_name: 要读取的工作表名,可以是名称、索引或列表。如果不指定,则读取第一个工作表。
  • header: 指定行号作为列名,默认是第一行。
  • index_col: 指定哪一列作为索引列。
df = pd.read_excel('data.xlsx', sheet_name='Sheet1')

2. 写入文件

2.1 写入 CSV 文件 to_csv

使用 df.to_csv() 函数将 DataFrame 写入 CSV 文件。常用参数包括:

  • path_or_buf: 文件路径或对象。
  • sep: 指定分隔符,默认是逗号(,)。
  • index: 是否写入行索引,默认为 True。
  • header: 是否写入列名,默认为 True。
df.to_csv('output.csv', index=False)
2.2 写入 Excel 文件 to_excel

使用 df.to_excel() 函数将 DataFrame 写入 Excel 文件。常用参数包括:

  • excel_writer: 文件路径或 ExcelWriter 对象。
  • sheet_name: 要写入的工作表名,默认为 'Sheet1'
  • index: 是否写入行索引,默认为 True。
  • header: 是否写入列名,默认为 True。
df.to_excel('output.xlsx', sheet_name='Sheet1', index=False)

3. 多工作表的操作

Pandas 允许在同一个 Excel 文件中操作多个工作表。

3.1 读取多个工作表

使用 sheet_name 参数指定要读取的多个工作表。

sheets_dict = pd.read_excel('data.xlsx', sheet_name=['Sheet1', 'Sheet2'])
3.2 写入多个工作表

使用 pd.ExcelWriter() 可以在同一个文件中写入多个工作表。

with pd.ExcelWriter('output.xlsx') as writer:
    df1.to_excel(writer, sheet_name='Sheet1')
    df2.to_excel(writer, sheet_name='Sheet2')

4. 数据清洗与处理

4.1 处理缺失值 dropna fillna isna

Pandas 提供了多种方法来处理缺失值。

  • df.dropna(): 删除包含缺失值的行或列。
  • df.fillna(): 用指定值填充缺失值。
  • df.isna(): 检测缺失值,返回布尔值 DataFrame。
df.dropna()  # 删除包含缺失值的行
df.fillna(0)  # 用0填充缺失值
4.2 数据筛选与选择

Pandas 允许根据条件对数据进行筛选。

filtered_df = df[df['column_name'] > 10]  # 筛选某列大于10的行

5. 数据透视表与分组操作

5.1 数据透视表

使用 pd.pivot_table() 可以生成数据透视表。

pivot_table = pd.pivot_table(df, values='column_name', index='index_column', columns='column_name', aggfunc='mean')
5.2 分组操作 groupby

使用 df.groupby() 进行数据分组,并应用聚合函数。

grouped = df.groupby('column_name').sum()  # 按列分组并求和

6. 文件处理的最佳实践

  • 文件路径处理:使用 os.path.join() 以处理跨平台文件路径。
  • 异常处理:使用 try-except 捕获文件操作可能产生的错误。
  • 使用 with 语句:处理文件时,建议使用 with 语句确保文件自动关闭。
import os

file_path = os.path.join('data', 'input.csv')
try:
    df = pd.read_csv(file_path)
except FileNotFoundError:
    print("File not found.")

7. 性能优化

  • 读取大文件时指定数据类型:通过 dtype 参数来减少内存使用。
  • 使用 chunksize 分批读取:对于超大文件,可以分块读取以节省内存。
df = pd.read_csv('large_file.csv', dtype={'column_name': 'float64'}, chunksize=10000)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值