Python 按相对30天inverval汇总数据
我得到了一个包含以下列的数据框:产品、产品发布日期、日期、收入。如何按产品计算30天间隔的总收入 对于每个不同的产品,产品发布日期在行中重复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
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)