使用熊猫与DataFrames合并时发生ValueError

时间:2019-02-28 16:41:21

标签: python-3.x pandas dataframe merge

我正在尝试使用Pandas合并三个数据框。为什么我收到此错误消息:ValueError:DataFrame的真值不明确。使用a.empty,a.bool(),a.item(),a.any()或a.all()。这是代码:

df = pd.merge(能源,GDP,ScimEn,on =“国家”)

在这里,能源,GDP,ScimEn是我试图合并的三个DataFrame。

1 个答案:

答案 0 :(得分:0)

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")

另外,最好显式设置how关键字。如果某个国家/地区位于某个数据框架中,但不在其他国家/地区中,则使用默认的how=inner进行合并将导致数据丢失,如果要保留所有数据,则应更改为outer从所有DataFrames。