如何根据第一个的索引和第二个的列值将数据帧的所有列值复制到另一个列的新列中

时间:2020-07-21 11:01:13

标签: pandas dataframe merge data-science

我有以下数据帧1 df1:

index    tech_1    tech_2   tech_3 .....
01_es      NA         NA        1
02_es       1         2         NA
03_es       2         1         2
04_es       1         NA        2
05_es       NA        NA        NA

和另一个数据框2 df2:

index        id    column_1   column_2  column_3
0         01_es       data      data       data
1         02_es       data      data       data
2         03_es       data      data       data
3         04_es       data      data       data
4         05_es       data      data       data

每当df1.index与df2.id匹配到新df2.columns时,我都希望将df1合并到df2中,从而将所有数据保留在df2上。我将使用几个df1执行此操作。

新df2:

index        id    column_1   column_2  column_3 tech_1    tech_2   tech_3 
0         01_es       data      data       data   NA        NA        1
1         02_es       data      data       data    1         2        NA
2         03_es       data      data       data    2         1        2
3         04_es       data      data       data    1        NA        2
4         05_es       data      data       data   NA        NA        NA

df1可能很大,具有不同的列数,并且可能不是所有的行都作为df2.id。我有几个文件可以运行脚本。我该怎么办?

谢谢!

1 个答案:

答案 0 :(得分:1)

在此处https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.merge.html

中查看文档

如果保证数据帧df2的id列唯一,则可以将其设置为索引并进行合并。

df2.set_index('id').merge(df1, left_index=True, right_index=True)

现在对于df1中有不同列的情况,您可以通过传递“ how”参数进行合并来定义您的首选项,请阅读文档以了解详细信息。