我正在使用数据框设置,如下所示:
| date | Product | Region | Age |
| 01/12/20 | Sales | NW | 17 |
| 01/12/20 | Sales | NW | 30 |
| 01/11/20 | Sales | SW | 32 |
| 01/12/20 | Import | SW | 5 |
| 01/12/20 | Import | SW | 45 |
| 01/12/20 | Sales | NW | 31 |
| 01/12/20 | Import | NW | 2 |
我想创建一个新的数据框,显示年龄 > 30 的行数,按日期/产品/区域分组。IE:
日期 | 产品 | 地区 | 老的 |
---|---|---|---|
01/12/20 | 销售量 | 西北 | 2 |
01/11/20 | 销售量 | 软件 | 1 |
01/12/20 | 进口 | 软件 | 1 |
我尝试了许多不同的方法,最新的使用 lambda 但到目前为止没有成功:
df['aged'] = df.groupby([pd.Grouper(freq="M"), 'Product', 'Region'])['Product'].transform(lambda x: count( x ) if df['age'] >= 30 else 0)
有没有人能够帮助并告诉我我哪里出错了?
我认为你需要:
new_df = (df[df['Age'].ge(30)].groupby(df.columns.difference(['Age']).tolist())['Age']
.count()
.reset_index(name='aged'))
print(new_df)
Product Region date aged
0 Import SW 01/12/20 1
1 Sales NW 01/12/20 2
2 Sales SW 01/11/20 1
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句