繁体   English   中英

Python-Combinig Pandas数据框

[英]Python - Combinig pandas dataframes

我有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

确保df1df2中存在df3col1值。 这是怎么做的? 请注意,因为df3还有其他数据,而不仅仅是col1 ,所以简单的concat无效。

如果df1df2col1没有重复项,则可以尝试以下操作:

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

在此处输入图片说明


资料

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM