我有两个集合,例如 A={"sara", "peter", "ray"} 和 B={"ram", "sara", "gouri"}。我想选取列表 B 的一名成员(例如“sara”)并与列表 A 核对以查看此名称是否存在于列表中。如果此名称存在,则打印“是”。我想用列表 A 检查列表 B 中的所有成员。我有下面的代码,但它不起作用。
for i in B:
if B[i]==A:
print("yes")
答案 0 :(得分:5)
这比你想象的要容易:
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
答案 1 :(得分:0)
我认为您正在寻找 in
关键字。分解一下:
(例如“sara”)并检查列表 A 以查看此名称是否存在于列表中。如果此名称存在,则打印“是”
if "sara" in B:
print("yes")
<块引用>
我想用列表A检查列表B中的所有成员。
for b in B:
if b in A:
print("yes")