Python 在数据帧的列中查找匹配值
我想比较两个df的列Python 在数据帧的列中查找匹配值,python,pandas,dataframe,Python,Pandas,Dataframe,我想比较两个df的列 条件=如果DF2中的df1值->执行某些操作 我使用了np.where,但我正确理解的这种方法只比较具有相同行索引的值 所以 不适合我的情况 我测试了一个标准的循环比较 for i in df_main['Nachname']: if i == df_third['Name']: print("true") else: print("false") 这返回了一个值错
条件=如果DF2中的df1值->执行某些操作 我使用了
np.where
,但我正确理解的这种方法只比较具有相同行索引的值
所以
不适合我的情况
我测试了一个标准的循环比较
for i in df_main['Nachname']:
if i == df_third['Name']:
print("true")
else:
print("false")
这返回了一个值错误:使用a.empty、a.bool()、a.item()、a.any()或a.all()
在测试了这些方法之后,我找不到它们的用处。
对于这种情况,肯定有一种方法,但我到目前为止还没有找到它在第二行中用“in”替换“==”。让我知道它是否有效
for i in df_main['Nachname']:
if i in df_third['Name']:
print("true")
else:
print("false")
将第二行中的“==”替换为“in”。让我知道它是否有效
for i in df_main['Nachname']:
if i in df_third['Name']:
print("true")
else:
print("false")
试一试
试一试
谢谢,我已经试过了,但不起作用,它总是给我一个“假”的感觉。您确定这两列之间至少有一个公共元素吗?检查数据的类型(例如字符串而不是数字)或使用空格标记的值,我已经尝试过了,但不起作用,它总是给我“false”作为返回值。您确定这两列之间至少有一个公共元素吗?检查数据的类型(例如字符串而不是数字)或带有空格的值
df_main['matching'] = df_main['Surname'].isin(df_third['Name'])