Python 如何基于另一列B的值替换dataframe列A的值

Python 如何基于另一列B的值替换dataframe列A的值,python,pandas,dataframe,Python,Pandas,Dataframe,例如,我有一个数据帧 df=pd.DataFrame([[1,2,np.nan],[4,5,np.nan],[7,8,9]) 是的 sku r1 r2 0 1 2 NaN 1 4 5 NaN 2 7 8 9.0 若我想在r2的基础上更改r1列的值,我的意思是若r2不是Nan,那个么使用r2的值替换r1的值,否则保持r1不变 因此,结果将是: sku r1 r2 0 1 2

例如,我有一个数据帧 df=pd.DataFrame([[1,2,np.nan],[4,5,np.nan],[7,8,9]) 是的

        sku  r1   r2
    0    1   2  NaN
    1    4   5  NaN
    2    7   8  9.0
若我想在r2的基础上更改r1列的值,我的意思是若r2不是Nan,那个么使用r2的值替换r1的值,否则保持r1不变

因此,结果将是:

        sku  r1   r2
    0    1   2  NaN
    1    4   5  NaN
    2    7   9.0  9.0
在本例的第三种情况下,将8改为9.0。 我是一个新的熊猫学习者,这需要我花时间来找到解决这个问题的方法

谢谢您的帮助。

您可以使用:

或:


使用
np.where

df['r1'] = np.where(df['r2'].notnull(),df['r2'],df['r1'])
df
输出:

   sku   r1   r2
0    1  2.0  NaN
1    4  5.0  NaN
2    7  9.0  9.0
df['r1'] = np.where(df['r2'].notnull(),df['r2'],df['r1'])
df
   sku   r1   r2
0    1  2.0  NaN
1    4  5.0  NaN
2    7  9.0  9.0