将数据框类别计数转换为列

时间:2019-08-22 09:22:04

标签: python python-3.x pandas

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

         Date Category
0  2019-08-19        a
1  2019-08-19        a
2  2019-08-19        b
3  2019-08-20        b
4  2019-08-20        b

我想将其转换为这种形式;

         Date  a  b
0  2019-08-19  2  1
1  2019-08-20  0  2

每个类别都有一列,每个日期都有各自的计数分组。

我已经尝试过:

grouper = df.groupby('Date')
df = pd.concat([pd.Series(v['Category'].value_counts().tolist(), name=k) for k, v in grouper], axis=1)

print(df.T)

这给了我

              0    1
2019-08-19  2.0  1.0
2019-08-20  2.0  NaN

不太正确。

用于重现数据帧的代码:

import pandas as pd

dates = ["2019-08-19"] * 3 + ["2019-08-20"] * 2
categories = ["a"] * 2 + ["b"] * 3
headers = ["Date", "Category"]

df = pd.DataFrame(categories, dates).reset_index()
df.columns = headers

0 个答案:

没有答案