我正在尝试将一个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值。到目前为止,我没有运气任何建议将不胜感激。
答案 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']