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

我有一个如下所示的数据框:


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”。


慕勒3428872
浏览 98回答 1
1回答

不负相思意

用于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-030              facebook       2019-01    60.0     NaN     NaN1              facebook       2019-02     NaN   150.0     NaN2              facebook       2019-03     NaN     NaN   450.03                google       2019-01    85.0     NaN     NaN4                google       2019-02     NaN   250.0     NaN5                google       2019-03     NaN     NaN   150.0选择df.loc[:, (slice(None), '2019-01')]                revenuemonth_payment   2019-010                60.01                 NaN2                 NaN3                85.04                 NaN5                 NaN
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python