【发布时间】:2019-08-09 05:45:23
【问题描述】:
我有以下数据框:
dataframe = pd.DataFrame({'date':pd.to_datetime(['2018-05-27', '2018-05-27','2018-05-28','2018-06-1']),
'code': ['1', '1', '1', '2']})
dataframe
date code
0 2018-05-27 1
1 2018-05-27 1
2 2018-05-28 1
3 2018-06-01 2
我想要:
dataframe = pd.DataFrame({'date':pd.to_datetime(['2018-05-27', '2018-05-28','2018-05-29','2018-05-30','2018-05-31', '2018-06-1']),
'1': [2, 1, 1, 0, 0, 0],
'2': [0, 0, 0, 0, 0, 1]})
dataframe
date 1 2
0 2018-05-27 2 0
1 2018-05-28 1 0
2 2018-05-29 0 0
3 2018-05-30 0 0
4 2018-05-31 0 0
5 2018-06-01 0 1
我的第一次尝试是:
dataframe.groupby([dataframe['code'], dataframe['date'].dt.month.rename('month'), dataframe['date'].dt.day.rename('day')]).agg({"count"})
code month day date count
1 5 27 2
28 1
2 6 1 1
但是给了我两个问题:(1)日期不再是日期格式,(2)我不知道如何转置它。我一直在与 pandas 时间序列和聚合函数作斗争,但没有取得多大成功。我也想在几个月内拥有它。知道如何进行吗?
【问题讨论】:
-
2018 年 5 月 29 日的 1 来自哪里?
-
这是一个错字。谢谢。
标签: python pandas dataframe aggregate transpose