我有一个看起来像这样的日期框架:
timestamp class
2019-07-01 00:59:56 A
2019-07-01 11:24:19 B
2019-07-01 12:41:34 B
2019-08-01 05:22:11 A
2019-08-01 07:05:06 A
现在,我需要知道在特定的一天我每节课有多少行。
所以最终结果应如下所示:
timestamp class count
2019-07-01 A 1
2019-07-01 B 2
2019-08-01 A 2
我不确定如何开始解决这个问题。
提前感谢!
将GroupBy.size
与GroupBy.size
一起使用:
Series.dt.date
或Series.dt.date
,并在#if necessary
df['timestamp'] = pd.to_datetime(df['timestamp'])
df1 = df.groupby([df['timestamp'].dt.date,'class']).size().reset_index(name='count')
print (df1)
timestamp class count
0 2019-07-01 A 1
1 2019-07-01 B 2
2 2019-08-01 A 2
之后指定列:
GroupBy.count
差异是GroupBy.count
,不包括缺失值,groupby
不。但是因为这里也将df1 = df.groupby([df['timestamp'].dt.date,'class'])['class'].count().reset_index(name='count')
print (df1)
timestamp class count
0 2019-07-01 A 1
1 2019-07-01 B 2
2 2019-08-01 A 2
列中的count
列传递给了size
参数,所以它的工作原理相同-两种解决方案都排除了缺失值。