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]