python - pandas 数据帧按类和时间戳分组

标签 python pandas class dataframe timestamp

我有一个如下所示的日期框:

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

现在我需要知道在特定的一天每个类(class)有多少行。

所以最终结果应该是这样的:

timestamp       class    count
2019-07-01      A        1
2019-07-01      B        2
2019-08-01      A        2

我不知道应该如何开始解决这个问题。

提前致谢!

最佳答案

使用GroupBy.sizeSeries.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.countgroupby 之后指定列:

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 列传递给 by 参数中的 groupby,所以它的工作原理相同 - 两种解决方案都排除了缺失值。

关于python - pandas 数据帧按类和时间戳分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59552596/

相关文章:

python - "No driver name specified"将 pandas 数据框写入 SQL Server 表

python - 时间序列数据的分层交叉验证

python - 如何获取 Pandas 系列中小数点后的最大位数

c# - t4 模板相对于 Class 文件的优势

python - 将日期分配给下面的所有行,直到下一个日期

python - 删除 Python 源代码中未使用的变量

Python Ephem/Datetime 计算

java - 添加新变量而不扩展类

python - 如何在 Python 中创建类的不同实例?

python - 查找每个具有不确定数量的已定义键的所有词典