我正在尝试做我认为在熊猫中的直接操作,但我似乎无法使它工作.
我有两个具有不同索引数的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
Run Code Online (Sandbox Code Playgroud)
Sr1 + Sr2或者Sr1.add(Sr2)给
A 6
B NaN
C 9
D NaN
Run Code Online (Sandbox Code Playgroud)
但我想要的是
A 6
B 2
C 9
D 4
Run Code Online (Sandbox Code Playgroud)
其中B和D值的Sr1传递方式.
有什么建议?
DSM*_*DSM 57
你可以使用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
Run Code Online (Sandbox Code Playgroud)
小智 5
Sr1 = pd.Series([1,2,3,4], index = ['A', 'B', 'C', 'D'])
Sr2 = pd.Series([5,6,7], index = ['A', 'C','E'])
(Sr1+Sr2).fillna(Sr2).fillna(Sr1)
Run Code Online (Sandbox Code Playgroud)
使用 fillna 的另一种方法。当 indeces 不匹配时,它将适用于所有情况
| 归档时间: |
|
| 查看次数: |
11584 次 |
| 最近记录: |