Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/327.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 按相对30天inverval汇总数据_Python_Pandas_Data Cleaning - Fatal编程技术网

Python 按相对30天inverval汇总数据

Python 按相对30天inverval汇总数据,python,pandas,data-cleaning,Python,Pandas,Data Cleaning,我得到了一个包含以下列的数据框:产品、产品发布日期、日期、收入。如何按产品计算30天间隔的总收入 对于每个不同的产品,产品发布日期在行中重复 df['days_since_launch'] = (df['date'] - df['product_launch_date']).dt.days 我想在30天的时间间隔内为每种产品计算“发布后的天数”。一个愚蠢的方法是按习惯制定计划: con1 = df['days_since_launch']<= 30 con2 = df['days_si

我得到了一个包含以下列的数据框:产品、产品发布日期、日期、收入。如何按产品计算30天间隔的总收入

对于每个不同的产品,产品发布日期在行中重复

df['days_since_launch'] = (df['date'] -  df['product_launch_date']).dt.days
我想在30天的时间间隔内为每种产品计算“发布后的天数”。一个愚蠢的方法是按习惯制定计划:

con1 = df['days_since_launch']<= 30
con2 = df['days_since_launch']> 30 |df['days_since_launch'] <= 60
...
df['date_bucket'] = 0
df.loc[con1, 'date_bucket'] = 1
df.loc[con2, 'date_bucket'] = 2
...
问题是如何以智能方式生成日期桶?
谢谢。

看起来您可以使用
pd.cut

df['days_since_launch'] = (df['date'] -  df['product_launch_date']).dt.days

bins = np.arange(df['days_since_launch'].min(), df['days_since_launch'].max()+1, 30)

df['date_bucket'] = pd.cut(df['days_since_launch'], bins=bins, labels=False)

@广浩:哎呀,我链接到了问题。好像有我删除答案的链接。
df['days_since_launch'] = (df['date'] -  df['product_launch_date']).dt.days

bins = np.arange(df['days_since_launch'].min(), df['days_since_launch'].max()+1, 30)

df['date_bucket'] = pd.cut(df['days_since_launch'], bins=bins, labels=False)