首页 >后端开发 >Python教程 >如何合并一列上的数据帧,同时保留一个数据帧中的初始信息?

如何合并一列上的数据帧,同时保留一个数据帧中的初始信息?

Barbara Streisand
Barbara Streisand原创
2024-11-01 12:50:02441浏览

How to Merge DataFrames on a Column While Preserving the Initial Information in One DataFrame?

在保留初始信息的同时合并列上的 DataFrame

尽管使用 Pandas 的合并功能,但在合并数据帧 df1 和 df2 时遇到困难在“名称”列上,同时保留 df1信息。

问题:

在合并操作中:
df1 = pd.merge(df1, df2, on = 'Name', how = 'outer ')

您正在执行外部联接,其中包括来自两个数据帧的个体。这会导致 df2 中的个体包含在 df1 中,即使它们最初没有出现在 df1 中。

解决方案:

要解决此问题,您可以使用一个以下方法之一:

方法 1:使用由创建的系列地图set_index:

df1['Sex'] = df1['Name'].map(df2.set_index('Name')['Sex'])

此方法建立一个系列,其中“Name”作为 df2 的“Sex”列的索引。然后,df1 的“Name”列映射到该系列以分配匹配的“Sex”值。通过将缺失值设置为 NaN 来解决。

方法 2:执行左连接:

df = df1.merge(df2[['Name','Sex']], on='Name', how='left')

左连接可确保 df1 中的个体优先,如果缺失值不存在于中,则用 NaN 填充df2.

注意事项:

  • 多个合并列:如果合并多个列,请在 'on' 参数中指定它们,例如。, on=['Year','Code'].
  • 重复值:重复的合并列值可能会导致问题。考虑在合并之前删除重复项或通过字典使用映射来选择适当的值。

以上是如何合并一列上的数据帧,同时保留一个数据帧中的初始信息?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn