Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 每用户3天运行费用_Python_Pandas - Fatal编程技术网

Python 每用户3天运行费用

Python 每用户3天运行费用,python,pandas,Python,Pandas,我有这样的数据 time. user value 0 2012-01-01 01:01:01 1 1 1 2012-01-02 01:01:01 1 2 2 2012-01-04 01:01:01 2 3 3 2012-01-06 01:01:01 2 1 4 2012-01-07 01:01:01 2 2 5 2012-01-08 01

我有这样的数据

            time.         user  value
0    2012-01-01  01:01:01    1     1
1    2012-01-02  01:01:01    1     2
2    2012-01-04  01:01:01    2     3
3    2012-01-06  01:01:01    2     1
4    2012-01-07  01:01:01    2     2
5    2012-01-08  01:01:01    2     1
6    2012-01-10  01:01:01    2     2
7    2012-01-13  01:01:01    2     2
8    2012-01-14  01:01:01    3     1
...
我需要知道,对于每个用户,是否有任何3天的时间段,这3天的值之和大于5。1表示是,0表示否。结果应如下所示

user  3DS
 1     0
 2     1
 3     0
 ...
我知道用户身上有一些groupby的组合,我认为是某种类型的应用。我发现了一个可能有用的窗口功能

3_days = timedelta(days=7)
lamba x : sum(df['value'][df['time'] <= x['time'] + 3_days])
3天=timedelta(天=7)

lamba x:sum(df['value'][df['time']看起来您可以对每个用户进行滚动求和

df_total = df.set_index('time').groupby('user').rolling(3).sum()
df_total.groupby(level='user').agg(lambda x: x.max() > 5) * 1

看起来您可以对每个用户进行滚动求和

df_total = df.set_index('time').groupby('user').rolling(3).sum()
df_total.groupby(level='user').agg(lambda x: x.max() > 5) * 1

你的问题是什么?你的问题是什么?如果一个用户的记录间隔超过一天,这将不起作用。偶尔会有一个用户每周或每月有一次记录,因此窗口需要明确为3天。好的,答案是连续三天。它已被修改为连续3条记录,而不与日历挂钩天。如果用户的记录间隔超过一天,这将不起作用。偶尔会有一个用户每周或每月有一次记录,因此窗口需要明确为3天。好的,答案是连续3天。它已被修改为连续3条记录,并且与日历日无关。