合并具有相同日期的行,并在熊猫中添加计数器列

时间:2018-09-05 19:11:06

标签: python python-3.x pandas dataframe

我有一个看起来像这样的简单DataFrame:

               date
0   2018-08-28 13:13:37
1   2018-08-28 13:43:31
2   2018-08-28 15:23:25
3   2018-08-28 15:23:30
4   2018-08-28 15:23:33
5   2018-08-28 15:23:34
...
790 2018-09-04 10:45:38
791 2018-09-04 10:45:38
792 2018-09-04 11:13:16
793 2018-09-04 12:12:09
794 2018-09-04 14:01:54

我想对所有具有相同日期(小时,分钟和秒并不重要)的行进行分组,并用总和(具有相同日期的合并行数)创建一个新列。

我要计算的输出是:

          date         sum
0   2018-08-28         6
1   2018-08-29         100
2   2018-08-30         100
3   2018-08-31         100
4   2018-09-01         100
5   2018-09-02         100
6   2018-09-03         100
7   2018-09-04         100

我尝试使用groupby function,但是我无法获得正确的输出

2 个答案:

答案 0 :(得分:2)

使用:

df.groupby(df['date'].dt.date).size().rename(columns={'size':'sum'})

此方法假定Series'日期'已为datetime类型。

如果通过pd.read_csv传递参数“ parse_dates=['date']”来创建DataFrame或运行以下命令,则可以设置此参数:

df['date'] = pd.to_datetime(df['date'])

答案 1 :(得分:2)

value_countsdt.date访问器一起使用:

df['date'].dt.date.value_counts()

示例数据演示:

df['date'].dt.date.value_counts().rename('sum').to_frame()

            sum
2018-08-28    6
2018-09-04    5