1. 透视表(Pivot Table)
透视表是一种用于汇总和分析数据的表格形式,可以对数据进行多维度的聚合。
示例代码
import pandas as pd # 创建示例 DataFrame
df = pd.DataFrame({ '日期': ['2023-01-01', '2023-01-01', '2023-01-02', '2023-01-02'], '城市': ['北京', '上海', '北京', '上海'], '温度': [3, 5, 4, 6]
}) # 创建透视表
pivot_table = pd.pivot_table(df, values='温度', index='日期', columns='城市', aggfunc='mean')
print(pivot_table)
输出:
城市 上海 北京
日期
2023-01-01 5 3
2023-01-02 6 4
2. 分组(Group By)
分组操作是将数据按照一个或多个列进行分组,然后对每个组进行聚合操作。
示例代码
# 创建示例 DataFrame
df = pd.DataFrame({ '日期': ['2023-01-01', '2023-01-01', '2023-01-02', '2023-01-02'], '城市': ['北京', '上海', '北京', '上海'], '温度': [3, 5, 4, 6]
}) # 分组并计算平均温度
grouped = df.groupby('城市')['温度'].mean()
print(grouped)
输出:
城市
上海 5.5
北京 3.5
Name: 温度, dtype: float64
3. 聚合(Aggregation)
聚合操作是对分组后的数据进行统计计算,如求和、平均值、最大值、最小值等。
示例代码
# 创建示例 DataFrame
df = pd.DataFrame({ '日期': ['2023-01-01', '2023-01-01', '2023-01-02', '2023-01-02'], '城市': ['北京', '上海', '北京', '上海'], '温度': [3, 5, 4, 6]
}) # 分组并进行多种聚合操作
aggregated = df.groupby('城市')['温度'].agg(['mean', 'sum', 'min', 'max'])
print(aggregated)
输出:
mean sum min max城市
上海 5.5 11 5 6
北京 3.5 7 3 4
4. 结合使用透视表、分组和聚合
在实际应用中,透视表、分组和聚合可以结合使用,以满足更复杂的数据分析需求。
示例代码
# 创建示例 DataFrame
df = pd.DataFrame({ '日期': ['2023-01-01', '2023-01-01', '2023-01-02', '2023-01-02'], '城市': ['北京', '上海', '北京', '上海'], '温度': [3, 5, 4, 6]
}) # 创建透视表并进行聚合
pivot_table = pd.pivot_table(df, values='温度', index='日期', columns='城市', aggfunc=['mean', 'sum'])
print(pivot_table)
输出:
mean sum城市 上海 北京 上海 北京
日期
2023-01-01 5 3 5 3
2023-01-02 6 4 6 4
总结
通过透视表、分组和聚合操作,可以灵活地对数据进行多维度的分析和汇总。以下是一个完整的示例代码,展示了如何结合使用这些操作:
import pandas as pd # 创建示例 DataFrame
df = pd.DataFrame({ '日期': ['2023-01-01', '2023-01-01', '2023-01-02', '2023-01-02'], '城市': ['北京', '上海', '北京', '上海'], '温度': [3, 5, 4, 6]
}) # 创建透视表
pivot_table = pd.pivot_table(df, values='温度', index='日期', columns='城市', aggfunc='mean')
print("透视表:")
print(pivot_table) # 分组并计算平均温度
grouped = df.groupby('城市')['温度'].mean()
print("\n分组并计算平均温度:")
print(grouped) # 分组并进行多种聚合操作
aggregated = df.groupby('城市')['温度'].agg(['mean', 'sum', 'min', 'max'])
print("\n分组并进行多种聚合操作:")
print(aggregated) # 创建透视表并进行聚合
pivot_table_agg = pd.pivot_table(df, values='温度', index='日期', columns='城市', aggfunc=['mean', 'sum'])
print("\n创建透视表并进行聚合:")
print(pivot_table_agg)