我有一个 pandas DataFrame,里面有一些商店几年来的每日销售数据,格式如下。
store sales cumulative_monthly_sales
date
2005-07-01 1 2 2
2005-07-01 2 3 3
2005-07-31 1 8 10
2005-08-01 1 5 5
2005-08-30 1 5 10
...
我想计算一个新的列 sales_progress_pct
即每家店在某一特定日期前实现的月销售额的百分比。在这个例子中,我有一个pandas DataFrame,里面有一些店铺几年来的日销售额数据,格式如下:店铺销售额累计_月_日
store sales cumulative_monthly_sales sales_progress_pct
date
2005-07-01 1 3 3 1.00
2005-07-01 2 2 2 0.20
2005-07-31 2 8 10 1.00
2005-08-01 1 5 5 0.50
2005-08-30 1 5 10 1.00
...
在你的例子中,你可以用 transform
s=df['cumulative_monthly_sales'].groupby([df.index.strftime('%Y-%m'), df.store]).transfomr('max')
df['sales_progress_pct']=df['cumulative_monthly_sales']/s