gpt4 book ai didi

python - 合并两个不同长度的python pandas数据帧,但将所有行保留在输出数据帧中

转载 作者:IT老高 更新时间:2023-10-28 20:21:24 29 4
gpt4 key购买 nike

我有以下问题:我有两个不同长度的 pandas 数据框,其中包含一些具有共同值和一些不同值的行和列,如下所示:

df1:                                 df2:

Column1 Column2 Column3 ColumnA ColumnB ColumnC
0 a x x 0 c y y
1 c x x 1 e z z
2 e x x 2 a s s
3 d x x 3 d f f
4 h x x
5 k x x

我现在要做的是合并两个数据框,这样如果 ColumnA 和 Column1 具有相同的值,则来自 df2 的行将附加到 df1 中的相应行,如下所示:

df1:
Column1 Column2 Column3 ColumnB ColumnC
0 a x x s s
1 c x x y y
2 e x x z z
3 d x x f f
4 h x x NaN NaN
5 k x x NaN NaN

我知道合并是可行的

df1.merge(df2,left_on='Column1', right_on='ColumnA')

但此命令会删除两个文件中 Column1 和 ColumnA 中所有不相同的行。相反,我想将这些行保留在 df1 中,并在其他行具有来自 df2 的值的列中为它们分配 NaN,如上所示。在 pandas 中是否有一种流畅的方法来做到这一点?

提前致谢!

最佳答案

您可以在此处阅读文档:http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.merge.html

您正在寻找的是左连接。默认选项是内部联接。您可以通过传递不同的 how 参数来更改此行为:

df1.merge(df2,how='left', left_on='Column1', right_on='ColumnA')

关于python - 合并两个不同长度的python pandas数据帧,但将所有行保留在输出数据帧中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33086881/

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