Python 按日期将两列数据框旋转为值计数

Python 按日期将两列数据框旋转为值计数,python,pandas,Python,Pandas,我有一个按默认范围索引的数据帧。它有两列:“日期”和“类型” 我想要的最终结果是这样的数据帧: date A B C 2019-01-01 2 2 0 2019-01-02 0 2 1 2019-01-03 2 0 1 我与此非常接近: df.pivot_表(index='date',columns='type',aggfunc={'type':'count'},fill_value=0) 但它产生了一个奇怪的结果,我不知道如何解释:

我有一个按默认范围索引的数据帧。它有两列:“日期”和“类型”

我想要的最终结果是这样的数据帧:

      date  A  B  C
2019-01-01  2  2  0
2019-01-02  0  2  1
2019-01-03  2  0  1
我与此非常接近:

df.pivot_表(index='date',columns='type',aggfunc={'type':'count'},fill_value=0)
但它产生了一个奇怪的结果,我不知道如何解释:

               type
      type  A  B  C
      date
2019-01-01  2  2  0
2019-01-02  0  2  1
2019-01-03  2  0  1
有关于我遗漏什么的线索吗?这似乎应该相当简单。

用于删除列索引轴的
名称
对象:

df = df.pivot_table(index='date', 
                    columns='type', 
                    values='type', 
                    aggfunc='size', 
                    fill_value=0).rename_axis(None, axis='columns')

            A  B  C
date               
2019-01-01  2  2  0
2019-01-02  0  2  1
2019-01-03  2  0  1
这与:

df = df.pivot_table(index='date', 
                    columns='type', 
                    values='type', 
                    aggfunc='size', 
                    fill_value=0)

df.columns.name = None

尝试使用df.columns=df.columns.droplevel(1)你所做的,在末尾有一个索引步骤:
df.pivot\u table(index='date',columns='type',aggfunc={'type':'count'},fill\u value=0)['type']
@cs95,这让我接近了,但它仍然有最左边的类型。只需添加一个
'reset\u index()
call then?使用
rename\u axis
应该给出您的预期输出:
df.pivot\u表(index='date',columns='type',values='type',aggfunc='size',fill\u value=0)。重命名\u axis(None,axis='columns')。重置\u index()
df = df.pivot_table(index='date', 
                    columns='type', 
                    values='type', 
                    aggfunc='size', 
                    fill_value=0)

df.columns.name = None