熊猫-拆分列并计算发生次数

时间:2018-11-20 10:49:10

标签: pandas count

这是客户在手机配件上进行的某些购买的信息,我的真实数据如下所示: Abstract Model 1 ~Samsung S6 | Sold: 4

我有一个看起来像这样的数据集:

item               sold
Design1 ~Model1 1
Design2 ~Model1 2
Design1 ~Model2 3
Design2 ~Model2 1

我想将item列分为designmodel两列,并计算每次售出design和{{1} }已根据输入中设计+模型组合的销售数据单独出售。

基于第一个数据集,我的预期输出将如下所示:

model

谢谢您的帮助

1 个答案:

答案 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()用于将系列分成几帧。

  1. groupby进行建模和设计,并对分组对象执行sum

  2. rename列和concat您的数据框。