for循环,根据另一个 Dataframe 中的索引为一个 Dataframe 中的新列赋值

brgchamk  于 2021-09-08  发布在  Java
关注(0)|答案(1)|浏览(238)

我正在处理两个 Dataframe 。
df1:

name:  col1:  col2:  col3:
0    a      10     155     0
1    b      12     195     1
2    c      100    100     1

df2:

name:  col1:  col2:  col3:
0    b      10     124     0
1    a      12     150     0
2    c      100    100     1
3    a      100    100     1
4    b      100    100     1
5    a      100    100     1

我正在尝试创建一个for循环,该循环基于“col3”向两个 Dataframe 添加一个新列col3'引用相反 Dataframe 中的索引,并应在相反 Dataframe 中作为新列返回'col2'。
示例输出:
df1:

name:  col1:  col2:  col3:  new_col:
0    a      10     155     0     124
1    b      12     195     1     150
2    c      100    100     1     150

df2:

name:  col1:  col2:  col3:  new_col:
0    b      10     124     0     155
1    a      12     150     0     155
2    c      100    100     1     195
3    a      100    100     1     195
4    b      100    100     1     195
5    a      100    100     1     195

这就是我目前正在尝试的:

for index1, row1 in df1.iterrows():
    df1['new_col'] = df2.iloc[row1['col3']]

for index2, row2 in df2.iterrows():
    df2['new_col'] = df1.iloc[row2['col3']]

有人能告诉我出了什么问题吗。谢谢

siv3szwd

siv3szwd1#

尝试:

df1["new_col"] = df2.loc[df1["col3"], "col2"].values
df2["new_col"] = df1.loc[df2["col3"], "col2"].values

print(df1)
print(df2)

印刷品:

name  col1  col2  col3  new_col
0    a    10   155     0      124
1    b    12   195     1      150
2    c   100   100     1      150

  name  col1  col2  col3  new_col
0    b    10   124     0      155
1    a    12   150     0      155
2    c   100   100     1      195
3    a   100   100     1      195
4    b   100   100     1      195
5    a   100   100     1      195

相关问题