You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 06:55:30