gpt4 book ai didi

python - 每个日期最近 7 天的汇总数据

转载 作者:行者123 更新时间:2023-12-03 19:45:02 27 4
gpt4 key购买 nike

我有一个数据集:

 app id geo  date        count
90 NO 2018-09-04 27
66 HK 2018-09-03 2
66 HK 2018-09-02 4
80 QA 2018-04-22 5
85 MA 2018-04-20 1
80 BR 2018-04-19 68

我正在尝试生成一个字段,用于汇总过去 7 天每个日期的数据。我的数据集应该是这样的:

 app id geo  date        count   count_last_7_days
90 NO 2018-09-04 27 33
66 HK 2018-09-03 2 6
66 HK 2018-09-02 4 4
80 QA 2018-04-22 5 74
85 MA 2018-04-20 1 69
80 BR 2018-04-19 68 68

我正在尝试这段代码:

 df['date'] = pd.to_datetime(df['date']) - pd.to_timedelta(7, unit='d')
df = df.groupby(['geo','app_id', pd.Grouper(key='date', freq='W')]) .
['count'].sum().reset_index().sort_values('date')

但即使我认为我以每周频率使用 Grouper (freq='W' ),它认为星期日是一周的开始,而且我没有 7 天的延迟用于非星期日条目。

请建议我如何计算该字段。

最佳答案

肮脏的单线会是

import numpy as np
df['count_last_7_days'] = [np.sum(df['count'][np.logical_and(df['date'][i] - df['date'] < pd.to_timedelta(7,unit='d'),df['date'][i] - df['date'] >= pd.to_timedelta(0,unit='d'))]) for i in range(df.shape[0])]

请注意,我首先使用 pd.to_datetime()time 列转换为日期时间。

它所做的是:对于每一天,它都会在所需的一周时间跨度内找到所有其他行,用 bool 值标记它们并在之后对它们求和

关于python - 每个日期最近 7 天的汇总数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53305375/

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