这是客户在手机配件上进行的某些购买的信息,我的真实数据如下所示:
Abstract Model 1 ~Samsung S6 | Sold: 4
我有一个看起来像这样的数据集:
item sold
Design1 ~Model1 1
Design2 ~Model1 2
Design1 ~Model2 3
Design2 ~Model2 1
我想将item
列分为design
和model
两列,并计算每次售出design
和{{1} }已根据输入中设计+模型组合的销售数据单独出售。
基于第一个数据集,我的预期输出将如下所示:
model
谢谢您的帮助
答案 0 :(得分:1)
尝试一下
df[['Design','Model']]=df['item'].str.split(' ~',expand=True)
print pd.concat([df.groupby('Design',as_index=False)['sold'].sum().rename(columns={'sold':'Desgin Sold'}),df.groupby('Model',as_index=False)['sold'].sum().rename(columns={'sold':'Model Sold'})],axis=1)
输出:
Design Desgin Sold Model Model Sold
0 Design1 4 Model1 3
1 Design2 3 Model2 4
说明:'
1. .str.split()
用于将系列分成几帧。
groupby
进行建模和设计,并对分组对象执行sum
。
rename
列和concat
您的数据框。