连接具有相似和不相交列的数据帧

2024-04-16 09:09:36 发布

您现在位置:Python中文网/ 问答频道 /正文

为了便于讨论,这个问题被简化了。你知道吗

取3个具有相似和不相交列但列值相同的数据帧。如果列值相同,如何将它们串联在一起,从而不存在重复的列,保留所有唯一的列(即不进行内部联接),并且不创建新行?你知道吗

单个数据帧:

df1型:

    a  b  c
0   1  2  3
1  11 22 33

df2型:

    b  c  d
0   2  3  4
1  22 33 44

df3公司:

    c  d  e
0   3  4  5
1  33 44 55

期望输出:

    a   b   c   d   e
0   1   2   3   4   5
1  11  22  33  44  55

但是,简单地使用

pd.concat([df1, df2, df3], axis=1)

包括重复列。你知道吗


Tags: 数据公司pddf1df2axisconcat列值
1条回答
网友
1楼 · 发布于 2024-04-16 09:09:36

选项1
使用concat+groupby-

pd.concat([df1, df2, df3], 1).groupby(axis=1, level=0).first()

    a   b   c   d   e
0   1   2   3   4   5
1  11  22  33  44  55

选项2
merge-

df1.merge(df2).merge(df3)

    a   b   c   d   e
0   1   2   3   4   5
1  11  22  33  44  55

一般来说,对于n数据帧,如果您有它们的列表,您可以使用循环-

df_list = [df1, df2, df3]
df = df_list[0]

for d in df_list[1:]:
    df = df.merge(d)

df
    a   b   c   d   e
0   1   2   3   4   5
1  11  22  33  44  55

相关问题 更多 >