【问题标题】:For loop that assigns value to new column in one dataframe based on index in another dataframe基于另一个数据帧中的索引为一个数据帧中的新列分配值的for循环
【发布时间】:2021-09-20 04:28:41
【问题描述】:

我正在处理两个数据帧。

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”向两个数据框添加一个新列。 'col3' 引用了对面数据框中的索引,并应返回 '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']]

谁能告诉我出了什么问题。谢谢!

【问题讨论】:

    标签: python pandas dataframe


    【解决方案1】:

    试试:

    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
    

    【讨论】:

      猜你喜欢
      • 2019-07-29
      • 2020-09-18
      • 2020-10-18
      • 1970-01-01
      • 1970-01-01
      • 2021-08-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多