Я взял примерный фрейм данных (так как вы предоставили изображение), учитывая, что df
выглядит так:
print(df)
States Official Leaves
0 Michigan 2019-01-28
1 Texas 2019-01-30
2 Florida 2019-02-05
3 Hawaii 2019-07-04
Добавление столбца для строкового представления дня и месяца и использование pd.crosstab()
df['day_month']=df['Official Leaves'].dt.strftime('%b-%d')
pd.crosstab(df.States,df.day_month).astype(bool).reset_index().rename_axis(None,1)
#if you want states as index, just remove the reset_index() from the code
States Feb-05 Jan-28 Jan-30 Jul-04
0 Florida True False False False
1 Hawaii False False False True
2 Michigan False True False False
3 Texas False False True False
Примечание: Если dtype для столбца Official leaves
является объектом, преобразуйте его в datetime
, используя df['Official Leaves']=pd.to_datetime(df['Official Leaves'])