python pandas-按日期和计数分组

时间:2018-09-05 10:31:12

标签: python pandas

我有以下数据框。日期,以DD / MM / YY

Date                        id     
1/5/2017 2:00 PM            100
1/5/2017 3:00 PM            101
2/5/2017 10:00 AM           102
3/5/2017  09:00 AM          103
3/5/2017  10:00 AM          104
4/5/2017  09:00 AM          105 

需要这样一种输出方式:既可以按日期分组,又可以计算每天的ID数,也可以忽略时间。 o / p新数据框应如下所示

DATE           Count
1/5/2017        2           -> count 100,101
2/5/2017        1
3/5/2017        2
4/5/2017        1

需要一种有效的方法来实现以上目标。

1 个答案:

答案 0 :(得分:0)

使用:

df['Date'] = pd.to_datetime(df['Date'], dayfirst=True)

df1 = df['Date'].dt.date.value_counts().sort_index().reset_index()
df1.columns = ['DATE','Count']

替代解决方案:

df1 = df.groupby(df['Date'].dt.date).size().reset_index(name='Count')

print (df1)
         DATE  Count
0  2017-05-01      2
1  2017-05-02      1
2  2017-05-03      2
3  2017-05-04      1

如果需要相同的格式:

df1 = df['Date'].str.split().str[0].value_counts().sort_index().reset_index()
df1.columns = ['DATE','Count']

new = df['Date'].str.split().str[0]
df1 = df.groupby(new).size().reset_index(name='Count')
print (df1)
       Date  Count
0  1/5/2017      2
1  2/5/2017      1
2  3/5/2017      2
3  4/5/2017      1