gpt4 book ai didi

python - 创建每小时间隔并循环获取 value_counts python pandas

转载 作者:太空宇宙 更新时间:2023-11-04 09:24:41 31 4
gpt4 key购买 nike

我有一个日期时间索引从 2019-04-25 15:00:00 到 2019-04-26 15:00:00 的数据框

对于每个小时,我想查找 df["mode"].value_counts() 以查看每小时有多少模式计数。

所以 between_time("08:00", "08:02"), between_time("09:00", "09:02"),between_time("10:00", "10:02"), 和等等……

我的数据框看起来像这样:

                        serial_number     mode
gps_updated_at

2019-04-26 15:01:00 A standby
2019-04-26 15:02:00 A standby
2019-04-26 15:02:00 B standby
2019-04-26 15:02:00 B good
2019-04-26 16:00:00 B good
2019-04-26 16:01:00 C bad

所以我想得到的每个小时 (15:00:00)

standby  3
good 1

和 16:00:00

good      1
bad 1

我怎样才能使 for 循环递增一个小时。

最佳答案

GroupBypd.Grouper 结合使用,我使用 Grouper 的原因是因为它使您的 date 保持完整。

df.groupby(pd.Grouper(key='gps_updated_at', freq='H'))['mode'].value_counts()

输出

gps_updated_at       mode   
2019-04-26 15:00:00 standby 3
good 1
2019-04-26 16:00:00 bad 1
good 1
Name: mode, dtype: int64

如果你想返回一个dataframe,使用reset_index:

df.groupby(pd.Grouper(key='gps_updated_at', freq='H'))['mode'].value_counts().reset_index(name='count')

输出

       gps_updated_at     mode  count
0 2019-04-26 15:00:00 standby 3
1 2019-04-26 15:00:00 good 1
2 2019-04-26 16:00:00 bad 1
3 2019-04-26 16:00:00 good 1

关于python - 创建每小时间隔并循环获取 value_counts python pandas,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58372787/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com