【问题标题】:Merge two dataframes with pandas by ID按 ID 将两个数据框与 pandas 合并
【发布时间】:2020-05-06 10:44:51
【问题描述】:

我有两个数据框/csv 文件,我正在尝试按 ID 合并它们。

df1:

df2:

我正在尝试这样做:

df3 = (pd.merge(df1, df2, left_on='leg_id', right_on='leg', how='inner'))

我想查看来自 df2 的所有数据,其中 id 是 df1 上的 id_leg 并且还想查看来自 df1 的数据,因为它的 1:M 可能会在 df2 的每个入口重复出现

一些建议?

【问题讨论】:

标签: python pandas dataframe merge


【解决方案1】:

使用 merge 有一个缺点,即 leg_idleg 包含在结果中(内容相同)。

也许更好的选择是:

  • df1中的索引设置为leg_id
  • df2中的索引设置为leg
  • 加入两个 DataFrame(现在在它们的索引上)。

到目前为止,结果有索引(取自 leg_idleg)但是 没有名字。要将其更改为“普通”的命名列,您可以:

  • 重命名索引(例如,改为leg)。
  • 重置索引(实际上只是此操作将其更改为 “普通”列)。

代码如下:

df1.set_index('leg_id').join(df2.set_index('leg'), how='inner')\
    .rename_axis(index='leg').reset_index()

这个解决方案相对于merge的优势在于索引列 只发生一次。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-10-17
    • 2018-03-14
    • 1970-01-01
    • 2021-10-08
    • 2021-12-14
    • 1970-01-01
    • 2015-04-17
    相关资源
    最近更新 更多