Python组合数据帧

2024-04-23 18:40:08 发布

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

我有3个数据帧,我想合并。它们看起来像这样:

df1       |df2        |df3
col1 col2 |col1 col2  |col1 col3
1    5     2    9      1    some
                       2    data

我希望前两个df-s基于col1合并到第三个df中,因此所需的输出是

df3
col1 col3 col2
1    some 5
2    data 9

我怎样才能做到这一点?我正在努力:

df3['col2'] = df1[df1.col1 == df3.col1].col2 if df1[df1.col1 == df3.col1].col2 is not None else df2[df2.col1 == df3.col1].col2 

为此,我得到了ValueError: Series lengths must match to compare

可以保证df3col1值存在于df1df2中。怎么做?请注意,简单的concat不起作用,因为df3中有其他数据,而不仅仅是col1


Tags: 数据nonedfdataifisnotsome
1条回答
网友
1楼 · 发布于 2024-04-23 18:40:08

如果df1df2col1中没有重复项,您可以尝试以下方法:

pd.concat([df1, df2]).merge(df3)

enter image description here


数据

df1 = pd.DataFrame({'col1': [1], 'col2': [5]})
df2 = pd.DataFrame({'col1': [2], 'col2': [9]})
df3 = pd.DataFrame({'col1': [1,2], 'col3': ['some', 'data']})

相关问题 更多 >