我有一个系列:
s
A 1
B 0
C 1
D -1
E -1
F 0
...
和具有系列索引值的子集的数据框:
df
one two three ....
A
C
D
F
...
df的内容与我的问题无关。
我正在寻找最Python化的方式来对照数据框索引检查序列索引,如果索引元素同时位于序列索引和数据帧索引中,请将序列值更改为零。
基于以上提供的样本s和df,我要寻找的结果是该系列看起来像这样:
s
A 0
B 0
C 0
D 0
E -1
F 0
请注意,某些序列值以0开头,并且保持为0。两个索引元素都位于其中的那些值在序列中更改为0。
我可以遍历索引,但是正在寻找更多的Python方式来实现此目的。
谢谢。
答案 0 :(得分:2)
只需:
s[s.index.isin(df.index)] = 0
收益:
A 0
B 0
C 0
D 0
E -1
F 0
dtype: int64
答案 1 :(得分:1)
可以使用带有所有0
的虚拟列的更新。应该很快。
import pandas as pd
s.update(pd.Series(0, index=df.index))