在Python pandas中重塑数据集可以使用pivot
、melt
和stack/unstack
等方法。
pivot
方法:将长格式的数据集转换为宽格式。它需要指定一个索引列、一个列名列和一个值列。例如:import pandas as pd
# 创建示例数据集
data = {'日期': ['2022-01-01', '2022-01-01', '2022-01-02', '2022-01-02'],
'城市': ['北京', '上海', '北京', '上海'],
'销售额': [100, 200, 150, 250]}
df = pd.DataFrame(data)
# 使用pivot方法重塑数据集
df_pivot = df.pivot(index='日期', columns='城市', values='销售额')
print(df_pivot)
输出结果为:
城市 上海 北京
日期
2022-01-01 200 100
2022-01-02 250 150
melt
方法:将宽格式的数据集转换为长格式。它需要指定一个或多个列作为标识符,将其他列转换为变量和值列。例如:import pandas as pd
# 创建示例数据集
data = {'日期': ['2022-01-01', '2022-01-02'],
'北京': [100, 150],
'上海': [200, 250]}
df = pd.DataFrame(data)
# 使用melt方法重塑数据集
df_melt = df.melt(id_vars='日期', var_name='城市', value_name='销售额')
print(df_melt)
输出结果为:
日期 城市 销售额
0 2022-01-01 北京 100
1 2022-01-02 北京 150
2 2022-01-01 上海 200
3 2022-01-02 上海 250
stack/unstack
方法:将多级索引的数据集在行和列之间进行转换。stack
方法将列索引转换为行索引,unstack
方法将行索引转换为列索引。例如:import pandas as pd
# 创建示例数据集
data = {'日期': ['2022-01-01', '2022-01-01', '2022-01-02', '2022-01-02'],
'城市': ['北京', '上海', '北京', '上海'],
'销售额': [100, 200, 150, 250]}
df = pd.DataFrame(data).set_index(['日期', '城市'])
# 使用stack/unstack方法重塑数据集
df_stack = df.unstack()
print(df_stack)
df_unstack = df_stack.stack()
print(df_unstack)
输出结果为:
销售额
城市 上海 北京
日期
2022-01-01 200 100
2022-01-02 250 150
销售额
日期 城市
2022-01-01 上海 200
北京 100
2022-01-02 上海 250
北京 150
以上是在Python pandas中重塑数据集的几种常用方法。根据具体的数据集结构和需求,选择合适的方法进行数据重塑。腾讯云提供的相关产品和服务可以参考腾讯云官方文档:腾讯云产品与服务。
领取专属 10元无门槛券
手把手带您无忧上云