在pandas数据框中从另一个具有不同索引的数据框中添加新列

发布于 2021-01-29 16:02:02

这是我的原始数据框。
原始数据框
这是我的第二个数据框,其中包含一列。
第二个数据帧
我想将第二个数据框的列添加到原始数据框的末尾。两个数据框的索引都不同。我确实是这样

feature_file_df['RESULT']=RESULT_df['RESULT']

结果列已添加,但所有值均为NaN
增加结果

如何添加有值的列

关注者
0
被浏览
56
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    假设数据框的大小相同,则可以将分配RESULT_df['RESULT'].values给原始数据框。这样,您不必担心索引问题。

    # pre 0.24
    feature_file_df['RESULT'] = RESULT_df['RESULT'].values
    # >= 0.24
    feature_file_df['RESULT'] = RESULT_df['RESULT'].to_numpy()
    

    最少的代码样本

    df
              A         B
    0 -1.202564  2.786483
    1  0.180380  0.259736
    2 -0.295206  1.175316
    3  1.683482  0.927719
    4 -0.199904  1.077655
    
    df2
    
               C
    11 -0.140670
    12  1.496007
    13  0.263425
    14 -0.557958
    15 -0.018375
    

    让我们先尝试直接分配。

    df['C'] = df2['C']
    df
    
              A         B   C
    0 -1.202564  2.786483 NaN
    1  0.180380  0.259736 NaN
    2 -0.295206  1.175316 NaN
    3  1.683482  0.927719 NaN
    4 -0.199904  1.077655 NaN
    

    现在,分配由返回的数组.values(或.to_numpy()对于> 0.24的熊猫版本)。.values返回一个numpy没有索引的数组。

    df2['C'].values 
    array([-0.141,  1.496,  0.263, -0.558, -0.018])
    
    df['C'] = df2['C'].values
    df
    
              A         B         C
    0 -1.202564  2.786483 -0.140670
    1  0.180380  0.259736  1.496007
    2 -0.295206  1.175316  0.263425
    3  1.683482  0.927719 -0.557958
    4 -0.199904  1.077655 -0.018375
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看