具体来说,我使用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] 删除。
我来说两句