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

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐