我正在尝试做我认为对 Pandas 来说是直截了当的操作,但是我似乎无法使它起作用。

我有两个具有不同索引数量的pandas系列,如果它们共享一个索引,我想将值加在一起,否则我只想传递没有相应索引的值。

例如

Sr1 = pd.Series([1,2,3,4], index = ['A', 'B', 'C', 'D'])
Sr2 = pd.Series([5,6], index = ['A', 'C'])
Sr1        Sr2
A     1    A     5
B     2    C     6
C     3
D     4
Sr1 + Sr2Sr1.add(Sr2)
A     6
B   NaN
C     9
D   NaN

但是我想要的是
A     6
B     2
C     9
D     4

此处传递的是BDSr1值。

有什么建议?

最佳答案

您可以使用fill_value:

>>> import pandas as pd
>>> Sr1 = pd.Series([1,2,3,4], index = ['A', 'B', 'C', 'D'])
>>> Sr2 = pd.Series([5,6], index = ['A', 'C'])
>>> Sr1+Sr2
A     6
B   NaN
C     9
D   NaN
>>> Sr1.add(Sr2, fill_value=0)
A    6
B    2
C    9
D    4

关于python - 在不获取NaN的情况下添加具有不同索引的 Pandas 系列,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12504493/

10-12 16:37