Python Pandas : Select Multiple Cell Values of one column based on the Value of another Column

标签 python pandas conditional-statements

所以我的 Pandas 数据如下所示:

values    variables
134       1
12        2
43        1
54        3 
16        2

只要 variables 的其余部分不等于 variables 中当前行的变量,我想创建一个新列,它是 values 的总和。例如,对于第一行,我想要对所有 values 行进行求和,其中 variables != 1。结果如下所示:

values    variables   result
    134       1       82
    12        2       231
    43        1       82
    54        3       205
    16        2       231

我尝试过一些类似枚举的方法,但我似乎无法很好地处理这个问题。谢谢!

最佳答案

您可以等效地从不使用任何过滤器的总和中减去等于当前变量的所有值的总和,而不是求所有不等于当前变量的值的总和:

df['result'] = df['values'].sum()
df['result'] -= df.groupby('variables')['values'].transform('sum')

或者如果你想简洁的话可以用一行:

df['result'] = df['values'].sum() - df.groupby('variables')['values'].transform('sum')

结果输出:

   values  variables  result
0     134          1      82
1      12          2     231
2      43          1      82
3      54          3     205
4      16          2     231

关于Python Pandas : Select Multiple Cell Values of one column based on the Value of another Column,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41683748/

相关文章:

python - 将 json_normalize 用于带有列表的结构化多级字典

python - 字典创建中的可选字典项

java - 在java中用条件显示字符和整数到字符串

c# - 以编程方式重命名计算机

python - 如何生成一个数字的所有可能的除数积?

python - 如何在类的 __init__ 函数中使用 Canvas 参数?

python - nltk tag tag_sents 给出不同的结果

python - 将 DataFrame 的列设置为 pandas 中另一个列的总和

python - 根据 Pandas 中的字符串用 NaN 替换列

javascript - 文本解析函数中与 Javascript 三元运算符的混淆