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

时间:2017-09-25 00:55:56

标签: python pandas dataframe

这是我的原始数据框。 Original dataframe 这是我的第二个包含一列的数据框。 second datframe 我想在最后将第二个数据帧的列添加到原始数据帧。两个数据帧的指标都不同。 我确实喜欢这个

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

添加了结果列,但所有值都是NaN&#39 Added result

如何添加值为

的列

1 个答案:

答案 0 :(得分:4)

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

feature_file_df['RESULT'] = RESULT_df['RESULT'].values

设置

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
5 -1.094666 -0.377783
6  0.351193 -1.045290
7 -0.013174  1.525027
8 -0.155707 -0.389500
9 -0.295518  0.177683

df2

           C
11 -0.140670
12  1.496007
13  0.263425
14 -0.557958
15 -0.018375
16  1.044098
17 -0.412894
18  1.187938
19  1.989982
20  0.502832

让我们先尝试直接分配。

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
5 -1.094666 -0.377783 NaN
6  0.351193 -1.045290 NaN
7 -0.013174  1.525027 NaN
8 -0.155707 -0.389500 NaN
9 -0.295518  0.177683 NaN

现在,分配.values属性。 .values返回一个没有索引的numpy数组。

df2['C'].values 
array([-0.141,  1.496,  0.263, -0.558, -0.018,  1.044, -0.413,  1.188,
        1.99 ,  0.503])

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
5 -1.094666 -0.377783  1.044098
6  0.351193 -1.045290 -0.412894
7 -0.013174  1.525027  1.187938
8 -0.155707 -0.389500  1.989982
9 -0.295518  0.177683  0.502832