Python 列与列之间的比较

Python 列与列之间的比较,python,pandas,Python,Pandas,我有两个这样的专栏: NaN 35078 33515 33515 NaN 123841 NaN 124074 NaN 5699 5700 5703 NaN 7506 NaN 9142 9100 9146 NaN 10736 14557 14557 NaN 17229 False False

我有两个这样的专栏:

    NaN      35078
  33515      33515
    NaN     123841
    NaN     124074
    NaN       5699
   5700       5703
    NaN       7506
    NaN       9142
   9100       9146
    NaN      10736
  14557      14557
    NaN     17229
False
False
False
False
False
 True
False
False
 True
False
False
False
我想做的是比较这两个列,并获得另一个新列,该列的值为True或False。条件是每一行的每一列的值应该不同,但没有NaN值

我应该得到这样的东西:

    NaN      35078
  33515      33515
    NaN     123841
    NaN     124074
    NaN       5699
   5700       5703
    NaN       7506
    NaN       9142
   9100       9146
    NaN      10736
  14557      14557
    NaN     17229
False
False
False
False
False
 True
False
False
 True
False
False
False

我拥有的是df.loc[:,'column1']!=df.loc[:,'column2'],但不会忽略NaN值。谢谢

将另一个布尔掩码与&for按位和:

如果需要测试两列:

mask = (df['column1'] != df['column2']) & (df[['column1', 'column1']].notna().all(axis=1))

如果我理解正确,None
df = pd.DataFrame({0: {0: None,  1: 33515.0,  2: None,  3: None,  
                       4: None,  5: 5700.0,  6: None,  7: None,  
                       8: 9100.0,  9: None,  10: 14557.0,  11: None}, 
                   1: {0: 35078,  1: 33515,  2: 123841,  3: 124074,  
                       4: 5699,  5: 5703,  6: 7506,  7: 9142,  8: 9146,  
                       9: 10736,  10: 14557,  11: 17229}})

df[0] < df[1]