为了账号安全,请及时绑定邮箱和手机立即绑定

从已在 pandas 中重新索引的数据透视表中选择一列

从已在 pandas 中重新索引的数据透视表中选择一列

慕勒3428872 2023-07-27 15:58:33
我有一个如下所示的数据框:df = pd.DataFrame({'publisher': ['facebook', 'facebook', 'facebook', 'google', 'google', 'google'],          'month_leadgen': ['2019-01', '2019-02', '2019-03', '2019-01', '2019-02', '2019-03'],         'month_payment': ['2019-01', '2019-02', '2019-03', '2019-01', '2019-02', '2019-03'],         'revenue': [60, 150, 450, 85, 250, 150]})然后我创建了一个数据透视表:df = df.pivot_table(index=['publisher', 'month_leadgen'], columns='month_payment', values='revenue').reset_index()我正在尝试选择该列df['2020-01'],但收到一条错误消息:KeyError: '2020-01'您能帮我理解为什么我不能选择此列吗?df 似乎没有多重索引。我无法选择任何月份列,但可以毫无问题地选择“month_ payment”、“campaign_name”和“month_leadgen”。
查看完整描述

1 回答

?
不负相思意

TA贡献1777条经验 获得超10个赞

用于slice(None)选择该级别的所有内容。slice(None) 使您免于陈述更深层次的内容。这意味着他们


df=df.pivot_table(index=['publisher', 'month_leadgen'], columns=['month_payment'], values=['revenue']).reset_index()

print(df)




              publisher month_leadgen         revenue                

month_payment                         2019-01 2019-02 2019-03

0              facebook       2019-01    60.0     NaN     NaN

1              facebook       2019-02     NaN   150.0     NaN

2              facebook       2019-03     NaN     NaN   450.0

3                google       2019-01    85.0     NaN     NaN

4                google       2019-02     NaN   250.0     NaN

5                google       2019-03     NaN     NaN   150.0

选择


df.loc[:, (slice(None), '2019-01')]


 


               revenue

month_payment   2019-01

0                60.0

1                 NaN

2                 NaN

3                85.0

4                 NaN

5                 NaN



查看完整回答
反对 回复 2023-07-27
  • 1 回答
  • 0 关注
  • 97 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信