gpt4 book ai didi

python - Pandas 的合并返回名称后附加了 _x 的列

转载 作者:太空狗 更新时间:2023-10-29 17:06:39 25 4
gpt4 key购买 nike

我必须数据框,df1 有列 A、B、C、D...df2 有列 A , B, E, F...

我要合并的键在 A 列中。 B 在两个数据框中也(很可能)相同。虽然这是一个大数据集,但我正在清理,所以我还没有对所有内容有一个非常好的概述。

我愿意

merge(df1, df2, on='A')

并且结果包含一个名为 B_x 的列。由于数据集又大又乱,我没有尝试研究 B_x 与 df1 中的 Bdf2 中的 B 有何不同

所以我的问题只是笼统的:当 Pandas 将 _x 附加到合并数据框中的列名时,它是什么意思?

谢谢

最佳答案

为未参与合并操作的列名称中的任何冲突添加后缀,请参阅 online docs .

所以在你的情况下,如果你认为它们是相同的,你可以对两列进行合并:

pd.merge(df1, df2, on=['A', 'B'])

虽然这会做的是仅返回 AB 存在于两个数据框中的值,因为默认合并类型是 inner合并。

所以你可以做的是将这个合并的 df 大小与你的第一个比较,看看它们是否相同,如果是,你可以对两列进行合并,或者只是删除/重命名 _x/_y 后缀 B 列。

我会花时间确定这些值是否确实相同并且存在于两个数据帧中,在这种情况下您可能希望执行外部合并:

pd.merge(df1, df2, on=['A', 'B'], how='outer')

然后您可以做的是删除重复的行(可能还有任何 NaN 行),这应该会为您提供一个干净的合并数据框。

merged_df.drop_duplicates(cols=['A', 'B'],inplace=True)

请参阅 drop_duplicates 的联机文档

关于python - Pandas 的合并返回名称后附加了 _x 的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23197537/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com