使用Python从一个数据框添加列

时间:2018-03-20 16:29:05

标签: python pandas

我正在尝试将一个pandas数据框中的列添加到另一个pandas数据框中。

这是数据框1:

print (df.head())
ID   Name    Gender
1    John    Male 
2    Denver  0 
             0
3    Jeff    Male

注意:ID和Name都是索引

这是数据框2:

print (df2.head())
ID    Appointed
1         R
2          
3         SL  

注意:ID是此处的索引。

我正在尝试根据ID将df2的指定列添加到df1。我尝试插入列并从df2复制列,但是指定列保持返回所有NAN值。到目前为止,我没有运气任何建议将不胜感激。

2 个答案:

答案 0 :(得分:1)

如果我理解你的问题,你应该得到你需要的东西:

df1.reset_index().merge(df2.reset_index(), left_on='ID', right_on='ID')

   ID    Name Gender Appointed
0   1    John   Male         R
1   2  Denver      0       NaN
2   3    Jeff   Male        SL

或者,正如Wen所指出的那样,你可以使用join:

df1.join(df2)

              Gender Appointed
ID Name                   
1  John     Male         R
2  Denver      0       NaN
0  NaN       NaN       NaN
3  Jeff     Male        SL

答案 1 :(得分:0)

重置两个datafrmes的索引,然后创建一个名为'指定'的列。在df1中并在其中指定相同的df2列。

重置索引后,两个datafrmes都有从0开始的索引。当我们分配列时,它们会根据作为pandas dataframe属性的索引自动对齐

df1.reset_index()
df2.reset_index()
df1['Appointed'] = df2['Appointed']