检查该项目是否存在于列表中
我有两个集合,例如 A={"sara", "peter", "ray"} 和 B={"ram", "sara", "gouri"}。我想选取列表 B 的一名成员(例如“sara”)并与列表 A 核对以查看此名称是否存在于列表中。如果此名称存在,则打印“是”。我想用列表 A 检查列表 B 中的所有成员。我有下面的代码,但它不起作用。
for i in B:
if B[i]==A:
print("yes")
回答
这比你想象的要容易:
for i in B:
if i in A:
print("yes")
这假设 A 和 B 都是列表,但您似乎有字典/集合。您可能需要先澄清这一点。如果您有套装,上述解决方案应该仍然有效。
编辑:您现在说 A 和 B 都是来自两个单独 DataFrame 的列。在这种情况下,你可以这样做:
A={"sara", "peter", "ray"}
B={"ram", "sara", "gouri"}
df1 = pd.DataFrame(A, columns=['Names'])
df2 = pd.DataFrame(B, columns=['Names'])
for index, row in df1.iterrows():
if row['Names'] in df2.Names.tolist():
print('yes')
编辑 2:您现在说要将结果添加到 df2 中的新列。用:
A={"sara", "peter", "ray"}
B={"ram", "sara", "gouri"}
df1 = pd.DataFrame(A, columns=['Names'])
df2 = pd.DataFrame(B, columns=['Names'])
df2['present_in_df1'] = np.where(df1['Names'] == df2['Names'], "yes", "no")
输出df2:
Names present_in_df1
0 gouri no
1 ram no
2 sara yes