更改系列和单独数据框中的索引元素的系列值的Pythonic方法

时间:2018-11-02 21:18:00

标签: python pandas

我有一个系列:

    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方式来实现此目的。

谢谢。

2 个答案:

答案 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))