使用Pandas合并数据框时出现ValueError错误

4
我正在尝试使用 Pandas 合并三个数据框。为什么会出现这个错误信息?
价值误差:DataFrame 的真实值是模棱两可的。 请使用 a.empty、a.bool()、a.item()、a.any() 或 a.all()。
以下是代码:
df=pd.merge(energy,GDP,ScimEn,on="Country")

这里energyGDPScimEn是我试图合并的三个数据框(DataFrames)。


欢迎来到SO。您可以查看merge的文档。您可以使用pd.merge将两个数据帧进行合并。 - Vaishali
1个回答

5

pd.merge 的调用签名仅接受2个要合并的 DataFrame;

pd.merge(left, right, how='inner', on=None, left_on=None, right_on=None, left_index=False, right_index=False, sort=False, suffixes=('_x', '_y'), copy=True, indicator=False, validate=None)

因此,您需要分两步完成:

df = pd.merge(energy, GDP, on="Country")
df = pd.merge(df, ScimEn, on="Country")

或者使用 DataFrame.merge 将这 2 步骤链接在一起,可以立即使用新的 DataFrame:

df = energy.merge(GDP, on="Country").merge(ScimEn, on="Country")

另外,明确设置how关键字是一个好主意。如果有一些国家在其中一个DataFrame中,但不在其他DataFrame中,则使用默认的how=inner进行合并将导致数据丢失,应该改为outer,如果您想保留所有来自各个DataFrame的数据。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接