Pandas DataFrame pivot操作丢失shop列问题求助
问题原因
pivot函数仅会保留三类内容:
- 指定为
index的列(未指定时默认使用原DataFrame的行索引) columns参数指定的列(作为结果的新列名)values参数指定的列(作为新列对应的值)
你的代码里既没把shop列设为index,也没将其纳入columns或values参数,因此shop列会被自动排除在结果之外。
解决方案
先通过pivot生成月份对应的营收数据,再将原数据的shop列合并回去,最后把NaN替换为0即可:
import pandas as pd data = { 'shop': ['Berlin', 'Berlin', 'Los Angeles', 'Los Angeles', 'Paris', 'Paris'], 'month': ['202209', '202209', '202209', '202208', '202208', '202208'], 'revenue': [10, 20, 30, 40, 50, 60] } data_df = pd.DataFrame(data) # 生成按月份拆分的营收数据 pivot_result = data_df.pivot(columns='month', values='revenue') # 合并shop列并填充空值为0 result_df = pd.concat([data_df['shop'], pivot_result], axis=1).fillna(0) # 可选:将浮点数转为整数 result_df = result_df.astype({'202208': int, '202209': int}) print(result_df)
执行后得到的结果与你的期望一致:
shop 202208 202209 0 Berlin 0 10 1 Berlin 0 20 2 Los Angeles 0 30 3 Los Angeles 40 0 4 Paris 50 0 5 Paris 60 0
内容的提问来源于stack exchange,提问作者Oliver Thomaschewski
相关产品推荐
相关产品推荐

