gpt4 book ai didi

Pandas 按周分组

转载 作者:行者123 更新时间:2023-12-03 18:45:28 25 4
gpt4 key购买 nike

我有以下 test数据框:

       date                 user  answer  
0 2018-08-19 19:08:19 pga yes
1 2018-08-19 19:09:27 pga no
2 2018-08-19 19:10:45 lry no
3 2018-09-07 19:12:31 lry yes
4 2018-09-19 19:13:07 pga yes
5 2018-10-22 19:13:20 lry no

我正在使用以下代码按周分组:
test.groupby(pd.Grouper(freq='W'))

我收到一个错误,即 Grouper 仅对 DatetimeIndex 有效,但是我不熟悉如何构建它以便按周分组。

最佳答案

可能你有 date列作为字符串。

为了在 Grouper 中使用它使用频率,从将此列转换为 DateTime 开始:

df['date'] = pd.to_datetime(df['date'])

然后,作为 date column 是“普通”数据列(不是索引),使用 key='date'参数和频率。

总而言之,下面有一个工作示例:
import pandas as pd

d = [['2018-08-19 19:08:19', 'pga', 'yes'],
['2018-08-19 19:09:27', 'pga', 'no'],
['2018-08-19 19:10:45', 'lry', 'no'],
['2018-09-07 19:12:31', 'lry', 'yes'],
['2018-09-19 19:13:07', 'pga', 'yes'],
['2018-10-22 19:13:20', 'lry', 'no']]
df = pd.DataFrame(data=d, columns=['date', 'user', 'answer'])
df['date'] = pd.to_datetime(df['date'])
gr = df.groupby(pd.Grouper(key='date',freq='W'))
for name, group in gr:
print(' ', name)
if len(group) > 0:
print(group)

请注意,组 key ( name ) 是 结尾 一周的日期,因此来自组成员的日期是 早于或等于 到上面打印的日期。

您可以通过 label='left' 更改它 Grouper 的参数.

关于 Pandas 按周分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53125155/

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