我有一个数据框。我想测试 (C) 在每一行中,列 (B) 中的数字是否在字符串 (A) 中。
df = pd.DataFrame({'A': ["me 123", "me-123", "1234", "me 12", "123 me", "6 you 123-me"],
'B': [123, 123, 123, 123, 6, 123]})
我几乎可以使用 extract 做到这一点
df['C'] = df.A.str.extract('(\d+)', expand=False).astype(float).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
5 6 you 123-me 123 0
但是在底行它没有看到数字 123 因为数字 6。我想得到
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
5 6 you 123-me 123 1
最佳答案
使用findall
[y in x for x , y in zip(df.A.str.findall('(\d+)'),df.B.astype(str))]
Out[733]: [True, True, False, False, False, True]
关于pandas - 列包含第 4 列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56276574/