【问题标题】:How to copy all column values of a dataframe into new columns of another one according to the index of the first and a column value of the second如何根据第一个的索引和第二个的列值将数据框的所有列值复制到另一个的新列中
【发布时间】:2020-07-21 19:22:03
【问题描述】:

我有以下数据框 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。我有几个文件可以运行脚本。我该怎么做?

谢谢!

【问题讨论】:

    标签: pandas dataframe merge data-science


    【解决方案1】:

    查看这里的文档https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.merge.html

    如果dataframe df2的id列保证唯一,可以设置为index并进行合并。

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

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

    【讨论】:

      猜你喜欢
      • 2021-12-26
      • 2021-10-12
      • 2021-06-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-28
      • 1970-01-01
      相关资源
      最近更新 更多