1. 读取文件
1.1 读取 CSV 文件 read_csv
Pandas 可以通过 pd.read_csv()
函数读取 CSV 文件。常用参数包括:
filepath_or_buffer
: 文件路径或 URL。sep
: 指定分隔符,默认为逗号(,
)。header
: 指定行号作为列名,默认是第一行。names
: 如果文件中没有列名,可以通过该参数传入列名列表。index_col
: 指定哪一列作为索引列。
import pandas as pddf = 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 osfile_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)