合并3个不同索引的数据帧

时间:2017-05-12 07:23:55

标签: python pandas dataframe merge

我有3个DF:GDP,能源,ScimEn。

print(GDP.index.name) > Country
print(energy.index.name) > None
print(ScimEn.index.name) > None

尽管能量和ScimEn确实有“国家/地区”列。 我想合并'Country'上的所有DF。我怎样才能做到这一点?我试过以下

newdf = (pd.merge(energy, ScimEn, how='inner', on='Country').merge(GDP, how='inner', on=GDP.index.name))
> KeyError: 'Country'

如果我尝试:

newdf = (pd.merge(energy, ScimEn, how='inner', on='Country').
         merge(GDP, how='inner', left_index=True))
    raise MergeError('Must pass right_on or right_index=True')
pandas.tools.merge.MergeError: Must pass right_on or right_index=True

如果我尝试:

newdf = (pd.merge(energy, ScimEn, how='inner', on='Country').
         merge(GDP, how='inner', left_index=True, right_index=True))

它返回:

Empty DataFrame
Columns: [Country, Energy Supply, Energy Supply per Capita, % Renewable, Rank, Documents, Citable documents, Citations, Self-citations, Citations per document, H index, Country Code, Indicator Name, Indicator Code, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015]
Index: []

0 个答案:

没有答案