如何在x1和x2之间检查条件后将常量'1'传递给X(如果x1 == x2 =>返回1)
df = pd.DataFrame({'x1': {0: np.nan, 1: 2.0, 2: 4.0, 3: 1, 4: 8.0},
'x2': {0: 3.0, 1: 2.0, 2: 2.0, 3: 5.0, 4: np.nan}})
x1 x2
0 NaN 3
1 2 2
2 4 2
3 1 5
4 8 NaN
如果我使用
df['x'] = df['x1'].where((df["x1"]==df["x2"]),0)
x1 x2 x
0 NaN 3 0
1 2 2 2
2 4 2 0
3 1 5 0
4 8 NaN 0
这里我会得到'x1'的值,其中x1 == x2,但我想传递整数1而不是'x1'我怎么能在这里完成这个?得到下面的结果?
x1 x2 x
0 NaN 3 0
1 2 2 1
2 4 2 0
3 1 5 0
4 8 NaN 0
答案 0 :(得分:5)
例如,如下所示;
>>> df['x'] = (df["x1"]==df["x2"]).astype(int)
>>> df
x1 x2 x
0 NaN 3 0
1 2 2 1
2 4 2 0
3 1 5 0
4 8 NaN 0