【问题标题】:change value of one dataframe by value from other dataframe pandas按其他数据框熊猫的值更改一个数据框的值
【发布时间】:2018-05-08 08:08:35
【问题描述】:

我有一个数据框 df1

id    value
1       100
2       100
3       100
4       100
5       100

我有另一个数据框 df2

id    value
2       50
5       30

我想用 df1 中的值替换 df2 中 id 的这些值。 最终修改的df1:

id    value
1       100
2       50
3       100
4       100
5       30

我将循环运行它。即 df2,将不时更改(df1,外部循环)

更改值的最佳方法是什么?

【问题讨论】:

    标签: python pandas dataframe


    【解决方案1】:

    使用combine_first,但首先在set_indexid 中使用DataFrames:

    注意:df2 中的 id 列必须是唯一的。

    df = df2.set_index('id').combine_first(df1.set_index('id')).reset_index()
    print (df)
       id  value
    0   1  100.0
    1   2   50.0
    2   3  100.0
    3   4  100.0
    4   5   30.0
    

    【讨论】:

      【解决方案2】:

      基于loc 的解决方案 -

      i = df1.set_index('id')
      j = df2.set_index('id')
      
      i.loc[j.index, 'value'] =  j['value']
      
      df2 = i.reset_index()
      df2
      
         id  value
      0   1    100
      1   2     50
      2   3    100
      3   4    100
      4   5     30
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-08-04
        • 1970-01-01
        • 2019-03-30
        相关资源
        最近更新 更多