python - 基于多个键之一对 Pandas 中的一系列值求和?

标签 python pandas

我在 python 中使用 pandas,我有一个 pandas Series 对象,我一辈子都弄不明白。它基本上看起来像这样:

>>>print(series_object)

key1              key2      key3                                                             
First class       19438     Error1:0       117
                  16431     Error2:0       80
                  1         Error3:0       70
Second class      28039     Error4:0       65
Third class       2063      Error5:0       28
                  19439     Error6:0       25
Fourth class      25975     Error7:0       11
Fifth class       23111     Error8:0       7
                  1243      Error9:665     4
                            Error9:581     3
                  27525     Error10:0      3
                  1243      Error9:748     2
                  1247      Error11:65     2
                  1243      Error9:852     2
                  1247      Error11:66     2
                            Error11:70     1
                            Error11:95     1
                            Error11:181    1
                            Error11:102    1
                            Error11:160    1

我想要一种方法来对 key2 匹配的对象的值求和,以便将 series_object 更改为:

>>>print(series_object)
key1              key2      key3                                                             
First class       19438     Error1:0       117
                  16431     Error2:0       80
                  1         Error3:0       70
Second class      28039     Error4:0       65
Third class       2063      Error5:0       28
                  19439     Error6:0       25
Fourth class      25975     Error7:0       11
Fifth class       23111     Error8:0       7
                  1243      Error9:665     11
                  27525     Error10:0      3
                  1247      Error11:65     9

我已经尝试了很多不同的东西,在普通数组中,这对我来说不是问题,但是 pandas 系列对象是新的并且让我感到困惑。谁能提供一些帮助?

最佳答案

你可以使用groupby。

http://pandas.pydata.org/pandas-docs/stable/groupby.html#groupby-with-multiindex

在你的情况下

series_object.groupby(level='key2').sum()

或者如果你还想保留 'key1' 信息

series_object.groupby(level=['key1', 'key2']).sum()

关于python - 基于多个键之一对 Pandas 中的一系列值求和?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27927122/

相关文章:

python - 如何在 Python 中使用正则表达式非捕获组格式

python - 我在构建 Python3.6-buster 容器时收到 'apt-get upgrade' 命令失败错误

python - 在 Django 中接受电子邮件地址作为用户名

python - 将函数集成到第一个变量以外的变量上,寻找 lambda 的替代方法

python - 如何对列表元素的值求和,哪些元素的值来自 Pandas 中的另一个数据框?

python - 如何为所有 true 和 false 映射 1 和 0

python - 仅当间隙小于 N nan 时才填充 pandas df 中的 nan 间隙

python - 按行和列获取单元格的值

python - 使用 python 正则表达式创建温度数据的 JSON 数组

python - 如何使用 xlwings 保存工作簿?