如何计算每个月的填充量?

data = [
        {"event_date": "2018-08-10", "tags": ["tv", "radio"]},
        {"event_date": "2018-08-11", "tags": ["tv", "radio"]},
        {"event_date": "2018-09-10", "tags": ["tv"]},
        {"event_date": "2018-11-10", "tags": ["tv", "wifi"]}
    ]
df = pd.DataFrame(data)
df.groupby([(df['event_date']).dt.month, df['tags']]).count()


我所期望的:

month tv radio wifi
8 2 2 0
9 1 0 0
10 0 0 0
11 1 0 1

最佳答案

@Wen类似的方法,但是创建一个新的DataFrame以避免apply

s = (pd.DataFrame(df.tags.values.tolist(),
        index=df.event_date.dt.month).stack().reset_index(1, drop=True))


现在使用pd.get_dummies

(pd.get_dummies(s).sum(level=0)
    .reindex(np.arange(s.index.min(),s.index.max()+1), fill_value=0))




            radio  tv  wifi
event_date
8               2   2     0
9               0   1     0
10              0   0     0
11              0   1     1

关于python - Pandas 按月计算计数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52635774/

10-12 20:55