我有一个看起来像这样的日期框架:
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
有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
:
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
。但是因为这里也将class
列传递给groupby
inby
参数,所以它的工作原理相同-两种解决方案都排除缺失值。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句