python pandas库 DataFrame如何使用
·
pandas DataFrame 基础操作
创建 DataFrame 可以通过字典、列表、NumPy 数组或其他数据结构。默认情况下,DataFrame 会自动生成整数索引。
import pandas as pd
# 通过字典创建
data = {'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [25, 30, 35]}
df = pd.DataFrame(data)
数据选择与过滤
通过列名选择单列或多列,返回结果为 Series 或 DataFrame。
# 选择单列
ages = df['Age']
# 选择多列
subset = df[['Name', 'Age']]
# 条件过滤
filtered = df[df['Age'] > 30]
数据清洗与处理
处理缺失值是数据清洗的常见任务,pandas 提供了多种方法填充或删除缺失值。
# 填充缺失值
df_filled = df.fillna(0)
# 删除包含缺失值的行
df_dropped = df.dropna()
# 替换特定值
df_replaced = df.replace({'Age': {25: 26}})
数据聚合与分组
groupby 方法用于对数据进行分组,然后应用聚合函数如 sum、mean、count 等。
# 按列分组并计算平均值
grouped = df.groupby('Name').mean()
# 多重分组
multi_grouped = df.groupby(['Name', 'Age']).sum()
数据合并与连接
pandas 提供多种方法合并 DataFrame,包括 concat、merge 和 join。
# 垂直合并
df_concat = pd.concat([df1, df2], axis=0)
# 水平合并
df_merged = pd.merge(df1, df2, on='key')
# 索引连接
df_joined = df1.join(df2, how='left')
时间序列处理
pandas 支持时间序列数据的处理,包括日期范围生成、重采样等操作。
# 生成日期范围
date_rng = pd.date_range(start='1/1/2020', end='1/10/2020', freq='D')
# 转换为时间序列
df['Date'] = pd.to_datetime(df['Date'])
df.set_index('Date', inplace=True)
# 重采样
df_resampled = df.resample('M').mean()
性能优化技巧
对于大型 DataFrame,使用适当的数据类型和避免循环可以显著提高性能。
# 优化数据类型
df['Age'] = df['Age'].astype('int32')
# 使用 apply 替代循环
df['Age_squared'] = df['Age'].apply(lambda x: x ** 2)
# 使用向量化操作
df['Age_squared'] = df['Age'] ** 2
更多推荐
所有评论(0)