Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/pandas/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Pandas 列包含第3列_Pandas - Fatal编程技术网

Pandas 列包含第3列

Pandas 列包含第3列,pandas,Pandas,我有一个数据帧。我想测试每行(C)中(B)列中的数字是否在字符串(A)列中 我可以用extract来做 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

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

我可以用extract来做

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

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

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

df.A.str.extract('(\d+),expand=False).eq(df.B.astype(str)).astype(int)
我发现了此问题,在此处找到并解决了:
df['C'] = df.A.str.extract('(\d+)', expand=False).astype(float).eq(df.B,0).astype(int)