如何用填充计算每个月的项目?
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()
Run Code Online (Sandbox Code Playgroud)
我期待的是:
month tv radio wifi
8 2 2 0
9 1 0 0
10 0 0 0
11 1 0 1
Run Code Online (Sandbox Code Playgroud)
所以这是不必要的,get_dummies也是reindex混合的问题
df.event_date=pd.to_datetime(df.event_date).dt.month
l=list(range(df.event_date.min(),df.event_date.max()+1))
df.set_index('event_date').tags.apply(pd.Series).stack().\
str.get_dummies().sum(level=0).\
reindex(l,fill_value=0)
Out[834]:
radio tv wifi
event_date
8 2 2 0
9 0 1 0
10 0 0 0
11 0 1 1
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
38 次 |
| 最近记录: |