pandas 将字符串字段聚合为独立于GroupBy中其他聚合的记录

wooyq4lh  于 11个月前  发布在  其他
关注(0)|答案(1)|浏览(99)

我的数据看起来像df1
| 店|所有者|
| --|--|
| Store1|一|
| Store1| B|
| Store2| B|
| Store2| C|
df2
| 店|已售出商品|价格|
| --|--|--|
| Store1|苹果| 2 |
| Store1|橙子| 3 |
| Store1|苹果| 2 |
| Store2|苹果| 3 |
| 店|香蕉| 2 |
我想买点
| 店|业主|销售网络|收入|
| --|--|--|--|
| Store1|一| 3 | 7 |
| | |||
| Store2| B| 2 | 5 |
| | |||
我试过这样的东西:

df = df1.merge(df2, how='inner', on='Store')
df_stats = df.groupby(['Store']).agg({"Sold_Item": np.count, "Price": 'sum'})

字符串
但是我不知道如何处理Owner字段。
有什么建议吗?

kb5ga3dv

kb5ga3dv1#

df2的最后一个存储不是应该是"Store2吗?

out = (
    df1.merge(df2, on="Store", how="inner")
        .groupby(["Store", "owner"], as_index=False)
        .agg({"Sold_Item": "count", "Price": "sum"})  
)

out.loc[out["Store"].duplicated(), out.columns.difference(["owner"])] = None

# out.to_excel("file.xlsx", index=False) # or `to_csv`

字符串
输出(* 在Excel中 *):
| 店|所有者|已售出商品|价格|
| --|--|--|--|
| Store1|一| 3 | 7 |
| | |||
| Store2| B| 2 | 5 |
| | |||

相关问题