合并或加入三个 DataFrame,其中所有三个 DataFrame 都包含四个相同的列和一个唯一的列
Merging or Join three DataFrames where all three DataFrames contain four identical columns and one unique column
我有三个 DataFrame:DF1、DF2、DF3。它们都包含 ['BHID','FROM','TO','SAMP ID','*unique element*']
列。 DataFrame 的行数不同,但我想合并或加入这些 DF,以便最终的 DataFrame 包含所有 unique elements,其中 BHID FROM TO SAMP ID 完全匹配.最终的 DataFrame 应该看起来像这样 -
BHID | FROM | TO | SAMP ID | *element 1* | *element2* | *element3*
我尝试了以下方法:
FinalDF = pd.merge(DF1,DF2,DF3, on=['BHID','FROM','TO','SAMP ID'], how='inner')
这给了我一个错误 - ValueError: The truth value of a DataFrame is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
请您提供正确的合并方法或连接方法。这将不胜感激。谢谢
您可以链接 merge
:
cols = ['BHID','FROM','TO','SAMP ID']
out = DF1.merge(DF2, on=cols).merge(DF3, on=cols)
您也可以使用 concat
:
out = pd.concat([DF1,DF2,DF3], axis = 0)[['BHID','FROM','TO','SAMP ID']]
我有三个 DataFrame:DF1、DF2、DF3。它们都包含 ['BHID','FROM','TO','SAMP ID','*unique element*']
列。 DataFrame 的行数不同,但我想合并或加入这些 DF,以便最终的 DataFrame 包含所有 unique elements,其中 BHID FROM TO SAMP ID 完全匹配.最终的 DataFrame 应该看起来像这样 -
BHID | FROM | TO | SAMP ID | *element 1* | *element2* | *element3*
我尝试了以下方法:
FinalDF = pd.merge(DF1,DF2,DF3, on=['BHID','FROM','TO','SAMP ID'], how='inner')
这给了我一个错误 - ValueError: The truth value of a DataFrame is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
请您提供正确的合并方法或连接方法。这将不胜感激。谢谢
您可以链接 merge
:
cols = ['BHID','FROM','TO','SAMP ID']
out = DF1.merge(DF2, on=cols).merge(DF3, on=cols)
您也可以使用 concat
:
out = pd.concat([DF1,DF2,DF3], axis = 0)[['BHID','FROM','TO','SAMP ID']]