我在 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/