我可以帮助您进行翻译。以下是需要翻译的内容:
我现在想要做的是比较df1的Column1和df2的ColumnA。对于每个“命中”,即df2中的一行在ColumnA中具有与df1中的一行在Column1中相同的值,我希望将df2中“命中”所在的行的ColumnB的值附加到df1中,使得我的结果如下:
我在Python Pandas中有两个不同长度的数据框,就像这样:
df1: df2:
Column1 Column2 Column3 ColumnA ColumnB
0 1 a r 0 1 a
1 2 b u 1 1 d
2 3 c k 2 1 e
3 4 d j 3 2 r
4 5 e f 4 2 w
5 3 y
6 3 h
我现在想要做的是比较df1的Column1和df2的ColumnA。对于每个“命中”,即df2中的一行在ColumnA中具有与df1中的一行在Column1中相同的值,我希望将df2中“命中”所在的行的ColumnB的值附加到df1中,使得我的结果如下:
df1:
Column1 Column2 Column3 Column4 Column5 Column6
0 1 a r a d e
1 2 b u r w
2 3 c k y h
3 4 d j
4 5 e f
到目前为止我尝试过的是:
for row in df1, df2:
if df1[Column1] == df2[ColumnA]:
print 'yey!'
我遇到了一个错误,提示我不能比较两个长度不同的数据框。所以我尝试了以下方法:
for row in df1, df2:
if def2[def2['ColumnA'].isin(def1['column1'])]:
print 'lalala'
else:
print 'Nope'
我写的代码可以输出结果,但我认为它没有迭代每一行并进行比较,因为它只打印了两次“lalala”。所以我继续研究并找到了一种迭代每个数据框行的方法,如下:
for index, row in df1.iterrows():
print row['Column1]
但是我不知道如何使用它来比较两个数据框的列并获得我想要的输出。
如果有帮助我解决这个问题的方法,将不胜感激。