我正在尝试使用Pandas合并三个数据框。为什么我收到此错误消息:ValueError:DataFrame的真值不明确。使用a.empty,a.bool(),a.item(),a.any()或a.all()。这是代码:
df = pd.merge(能源,GDP,ScimEn,on =“国家”)
在这里,能源,GDP,ScimEn是我试图合并的三个DataFrame。
答案 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。