如何合并/合并来自Quandl的两个数据帧?

Hanshenry90

具体来说,我使用Python2.7。我从Quandl中读取并打印了两个数据帧:“ FMAC / HPI_AK”和“ FMAC / HPI_CA”,没有问题。我曾经merged = pd.merge(df1, df2, on = 'Date', how = 'outer')合并两个数据帧。但是,当我尝试合并两个数据帧时,我得到一个回溯,说keyerror: 'Date'“ Date”是两个数据帧中first / index列中的属性。

import quandl
import pandas as pd

api_key = open('quandlapikey.txt', 'r').read()
df1 = quandl.get('FMAC/HPI_ak', authtoken=api_key)
df2 = quandl.get('FMAC/HPI_ca', authtoken=api_key)
print(df1.head())
print(df2.head())
merged = pd.merge(df1, df2, on = 'Date', how = 'outer')
merged.set_index('Date', inplace = True)
print(merged)

日期值
1975-01-31 15.671711

1975-02-28 15.726897

1975-03-31 15.919058

1975-04-30 16.233030

1975-05-31 16.494823

日期值
1975-01-31 34.447924

1975-02-28 34.958144

1975-03-31 35.480144

1975-04-30 36.024334

1975-05-31 36.617578

追溯(最近一次通话):

文件“”,第1行,位于runfile('/ Users / hans / Desktop / sentdex / buildingdataset.py',wdir ='/ Users / hans / Desktop / sentdex')

在运行文件execfile(文件名,名称空间)中的行866行中的文件“ /Users/hans/hans/anaconda2/lib/python2.7/site-packages/spyder/utils/site/sitecustomize.py”

文件“ /Users/hans/anaconda2/lib/python2.7/site-packages/spyder/utils/site/sitecustomize.py”,第94行,位于execfile builtins.execfile(filename,* where)中

文件“ /Users/hans/Desktop/sentdex/buildingdataset.py”,第22行,合并= pd.merge(df1,df2,on ='Date',how ='outer')

文件“ /Users/hans/anaconda2/lib/python2.7/site-packages/pandas/tools/merge.py”,第61行,在合并copy = copy,indicator = indicator中)

init self.join_names中的文件“ /Users/hans/hans/anaconda2/lib/python2.7/site-packages/pandas/tools/merge.py”,第543行= self._get_merge_keys()

在“ /Users/hans/anaconda2/lib/python2.7/site-packages/pandas/tools/merge.py”文件中,第810行,位于_get_merge_keys right_keys.append(right [rk] ._ values)中

getitem返回self中的文件“ /Users/hans/anaconda2/lib/python2.7/site-packages/pandas/core/frame.py”,行2059。_getitem_column(key)

_getitem_column中的文件“ /Users/hans/hans/anaconda2/lib/python2.7/site-packages/pandas/core/frame.py”第2066行返回self._get_item_cache(key)

文件“ /Users/hans/anaconda2/lib/python2.7/site-packages/pandas/core/generic.py”,行1386,位于_get_item_cache值= self._data.get(item)中

在get loc = self.items.get_loc(item)中的文件“ /Users/hans/anaconda2/lib/python2.7/site-packages/pandas/core/internals.py”,第3543行

在get_loc返回self._engine.get_loc(self._maybe_cast_indexer(key))中的文件“ /Users/hans/hans/anaconda2/lib/python2.7/site-packages/pandas/indexes/base.py”,第2136行

在pandas.index.IndexEngine.get_loc中的文件“ pandas / index.pyx”,第132行(pandas / index.c:4433)

在pandas.index.IndexEngine.get_loc中的文件154行中的“ pandas / index.pyx”(pandas / index.c:4279)

在pandas.hashtable.PyObjectHashTable.get_item中的文件“ pandas / src / hashtable_class_helper.pxi”,第732行(pandas / hashtable.c:13742)

在pandas.hashtable.PyObjectHashTable.get_item中的文件“ pandas / src / hashtable_class_helper.pxi”,第740行(pandas / hashtable.c:13696)

KeyError:“日期”

机械肉

您会收到该错误,因为Date这些索引DataFrames不是列中的索引

您可以改为(经过测试):

merged = pd.merge(df1, df2, how='outer', left_index=True, right_index=True)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章