列包含第3列

时间:2019-05-23 12:13:44

标签: pandas

我有一个数据框。我想测试(C)在每一行中(B)列中的数字是否在字符串(A)列中。

df = pd.DataFrame({'A': ["me 123", "me-123", "1234", "me 12", "123 me"],
                   'B': [123,       123,      123,    123,     6]})

我可以使用提取物

df['C'] = df.A.str.extract('(\d+)', expand=False).astype(int).eq(df.B,0).astype(int)

         A    B  C
0   me 123  123  1
1   me-123  123  1
2     1234  123  0
3    me 12  123  0
4  123  me    6  0

但是,如果A值之一不包含数字:

df = pd.DataFrame({'A': ["me 123", "me-123", "1234", "me 12", "123 me", "me"],
                   'B': [123,       123,      123,    123,     6,        123]})

然后我得到:

ValueError: cannot convert float NaN to integer

1 个答案:

答案 0 :(得分:2)

NaN是浮点型的,因此您可以将输出转换为float s:

df['C'] = df.A.str.extract('(\d+)', expand=False).astype(float).eq(df.B,0).astype(int)