从数据透视表中选择已在熊猫中重新建立索引的列

时间:2020-09-09 20:23:46

标签: python python-3.x pandas pivot-table

我有一个看起来像这样的数据框:

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 个答案:

答案 0 :(得分:2)

使用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
相关问题