如何连接/合并来自Quandl的两个数据帧?
具体而言,我使用Python2.7。我从Quandl读取并打印两个数据帧:“FMAC/HPI_AK”和“FMAC/HPI_CA”,分别没有问题。我使用merged = pd.merge(df1, df2, on = 'Date', how = 'outer')
来合并两个数据帧。但是当我试图合并这两个数据帧时,我得到一个回溯说keyerror: 'Date'
其中'Date'是两个数据帧中第一个/索引列中的属性。如何连接/合并来自Quandl的两个数据帧?
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年1月31日15.671711
1975年2月28日15.726897
1975年3月31日15.919058
1975年4月30日16.233030
1975-05-31 16.494823
日期值
1975年1月31日34.447924
1975年2月28日34.958144
1975年3月31日35.480144
1975年4月30日36.024334
1975年5月31日36.617578
回溯(最近通话最后一个):
文件 “”,1号线,在 runfile('/ Users/hans/Desktop/sentdex/buildingdataset.py',wdir ='/ Users/hans/Desktop/sentdex')
“/Users/hans/anaconda2/lib/python2.7/site -packages/Spyder的/ utils的/网站/ sitecustomize.py “线路866,在RUNFILE 的execfile(文件名,命名空间)
文件” /Users/hans/anaconda2/lib/python2.7/site-packages/spyder /utils/site/sitecustomize.py”,线94,在的execfile builtins.execfile(文件名,*其中)
文件 “/Users/hans/Desktop/sentdex/buildingdataset.py”,第22行,在 merged = pd.merge(df1,df2,on ='Date',how ='outer')
文件 “/Users/hans/anaconda2/lib/python2.7/site-packages/pandas/tools/merge.py”,第61行,在合并 副本=拷贝,指示器=指示器)
文件 “/Users/hans/anaconda2/lib/python2.7/site-packages/pandas/tools/merge.py”,线路543,在初始化 self.join_names)= 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)
文件 “/Users/hans/anaconda2/lib/python2.7/site-packages/pandas/core/frame.py”,线2059,在的GetItem 回报self._getitem_column(键)
文件“/Users/hans/anaconda2/lib/python2.7/site-packages/pandas/core/frame。PY”,线路2066,在_getitem_column 回报self._get_item_cache(键)
文件 “/Users/hans/anaconda2/lib/python2.7/site-packages/pandas/core/generic.py”,行1386在_get_item_cache 值= self._data.get(项目)
文件 “/Users/hans/anaconda2/lib/python2.7/site-packages/pandas/core/internals.py”,线3543,在得到 LOC = self.items.get_loc(项目)
文件 “/Users/hans/anaconda2/lib/python2.7/site-packages/pandas/indexes/base.py”,线2136,在get_loc return self._engine.get_loc(self._maybe_cast_indexer(key))
文件 “熊猫/ index.pyx”,线路132,在pandas.index.IndexEngine.get_loc(熊猫/ index.c:4433)
文件 “熊猫/ index.pyx”,线路154,在pandas.index.IndexEngine.get_loc(熊猫/ index.c:4279)
文件 “熊猫/ SRC/hashtable_class_helper.pxi”,线路732,在pandas.hashtable.PyObjectHashTable.get_item(熊猫/ hashtable.c:13742 )
文件 “熊猫/ SRC/hashtable_class_helper.pxi”,线路740,在pandas.hashtable.PyObjectHashTable.get_item(熊猫/ hashtable.c:13696)
KeyError异常:“日期”
你得到错误,因为Date
是在那些DataFrames
不是列的索引。
可以代替做(测试):
merged = pd.merge(df1, df2, how='outer', left_index=True, right_index=True)
太谢谢你了! – Hanshenry90
非常欢迎! – bernie