我有两个数据框:
DF1:
ID v1 v2 v3
289 1455.0 2.0 0.62239
289 1460.0 0.0 0.46037
289 1465.0 4.0 0.41280
290 1470.0 0.0 0.39540
290 1475.0 2.0 0.61809
290 1475.0 2.0 0.61809
DF2:
ID v1 v2 v3
289 1423.0 2.0 0.62239
289 142Q.0 0.0 0.46037
289 14FW.0 4.0 0.41280
290 14Q3.0 0.0 0.39540
290 1453.0 2.0 0.61809
290 1454.0 2.0 0.61809
我想用DF2中的每一行迭代DF1中的每一行,看看它是否在DF2中,就像这样:
for row in results_01.iterrows():
diff = []
if row not in results_02:
add different one to 'diff'
print(diff)
我了解逻辑,但是不确定如何做到这一点,这是Python的新手,有人可以帮助我吗?非常感谢。
答案 0 :(得分:1)
您可以通过“内部”合并轻松做到这一点。
<div class="container">
<div class="content">
<div class="a">Lorem ipsum dolor sit amet consectetur adipisicing elit. </div>
<div class="b">Lorem ipsum dolor sit amet consectetur adipisicing elit.</div>
<div class="c">Lorem ipsum dolor sit amet consectetur adipisicing elit. </div>
</div>
</div>
编辑:
事实证明,需要的是df1中而不是df2中的行,而不是交集。 在这种情况下,应该使用isin pandas方法。 这是link处理的问题。
答案 1 :(得分:0)
一种方法(可能不是最有效的)是将数据帧附加在一起,然后删除重复项,如下所示:
full_df = df1.append(df2)
full_df = full_df.drop_duplicates(keep=False)
答案 2 :(得分:0)
您拥有的代码块看起来与您在python中所做的非常接近。从一个数据帧中移出一行,然后遍历另一个数据帧以寻找匹配项。
for index, row in results_01.iterrows():
diff = []
compare_item = row['col_name']
for index, row in results_02.iterrows():
if compare_item == row['compare_col_name']:
diff.append(compare_item, row['col_name']
return diff
在这里,我要从一个数据帧的一行中获取特定的列值,并将其与另一个数据帧中的另一个值进行比较