pandas df列中的多个值并对另一列值求和

dfddblmv  于 12个月前  发布在  其他
关注(0)|答案(1)|浏览(96)

数据类型:

Person          Time
1     person1               20
2     person1;person2       60
3     person2;person3       100

我有一个计算单个值的代码:

df['Person'].str.split(";", expand=True).stack().value_counts()

然而,我想更进一步,总结df中每个Person的所有Time值。输出应为:

person1 - 80
person2 - 160
person3 - 100
but5z9lq

but5z9lq1#

使用DataFrame.explode,按拆分值重新分配列Person,并聚合sum

out = (df.assign(Person=df['Person'].str.split(";"))
         .explode('Person')
         .groupby('Person', as_index=False)
         .sum())
print (out)
    Person  Time
0  person1    80
1  person2   160
2  person3   100

相关问题