我有以下数据
import pandas as pd
import numpy as np
df = pd.DataFrame(data={'name':['a', 'b', 'c', 'd', 'e', 'f'],
'vaccine_1':['2021-01-20', '2021-01-20', '2021-02-20', np.nan, '2021-02-22', '2021-02-23'],
'vaccine_2':['2021-02-22', '2021-02-22', '2021-02-25', np.nan, '2021-03-22', np.nan]})
df['vaccine_1'] = pd.to_datetime(df['vaccine_1']).dt.date
df['vaccine_2'] = pd.to_datetime(df['vaccine_2']).dt.date
df
我想把这个表转换成这样的东西
基本上,我想得到每个日期的总和,以得到在特定日期有多少人接种了疫苗,但由于有两个日期,我迷路了
一个简单的groupby不会给我结果
df.groupby(['vaccine_1'])['name'].count()
代码只告诉我第一次接种疫苗的人数,我无法获得第二次。我如何解决这个问题?谢谢
您可以进行熔化,获取值计数,然后取消堆叠以将疫苗作为标题:
分别计算每个
vaccine
列:我们可以首先使用^{} 融化数据帧,然后使用^{}
相关问题 更多 >
编程相关推荐