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

标签 python pandas

数据:

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

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

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

但是,我想更进一步,将 df 中每个人的所有时间值相加。输出应该是:

person1 - 80
person2 - 160
person3 - 100

最佳答案

使用DataFrame.explode通过分割值和聚合sum重新分配列Person:

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

关于python - pandas df 列中的多个值并对另一列值求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/77171827/

相关文章:

python - 如何创建分离器网格

python - 加快客户mysql切片切 block

python - Django : redirect still remains in the same page

python - 在 xpath 中使用破折号在 py-dom-xpath 中不起作用

performance - 如何按组加速 Pandas 多级数据帧移动?

python - 如何使用 Pandas 系列作为另一个系列的查找

python - 使用 python (pandas) 对 CSV 文件进行条件合并

Python Pandas : labeling categorical values based on legend dataframe

python - 如何获取内置 Python 类构造函数的参数列表?

python - scikit learn 类型错误 only integer arrays with one element can be converted to an index