2017-04-15 30 views
1

具体的には、私はPython2.7を使用します。 Quandl: 'FMAC/HPI_AK'と 'FMAC/HPI_CA'の2つのデータフレームを個別に読み込み、問題なく印刷します。私はmerged = pd.merge(df1, df2, on = 'Date', how = 'outer')を使って2つのデータフレームをマージしました。しかし、2つのデータフレームをマージしようとすると、keyerror: 'Date'というトレースバックが表示されます。ここで、「Date」は、両方のデータフレームの最初の/ indexカラムの属性です。Quandlから2つのデータフレームを結合/マージする方法は?

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 /スパイダー/ utilsの/サイト/ sitecustomize.py "行866、RUNFILE execfileを(ファイル名、名前空間)

ファイル内の" /Users/hans/anaconda2/lib/python2.7/site-packages/spyder で/Users/hans/Desktop/sentdex/buildingdataset.py "22行目、「execfileを builtins.execfile(ファイル名、*)

ファイルでは、ライン94、" /utils/site/sitecustomize.py merged = pd.merge(df1、df2、on = 'Date'、how = 'outer')

マージコピーでファイル "/Users/hans/anaconda2/lib/python2.7/site-packages/pandas/tools/merge.py"、ライン61、=コピー、インジケータ=インジケータ)

のinit self.join_namesで、 "/Users/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(右[rk] ._値)

のGetItem リターンself._getitem_column(キー)

ファイルで

ファイル "/Users/hans/anaconda2/lib/python2.7/site-packages/pandas/core/frame.py"、ライン2059、 "/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、 get_loc で、 LOC = self.items.get_loc(アイテム)

ファイル "/Users/hans/anaconda2/lib/python2.7/site-packages/pandas/indexes/base.py"、ライン2136を取得return self._engine.get_loc(self._maybe_cast_indexer(key))

pandas.index.IndexEngine.get_loc(パンダ/ index.c:4433)にファイル "パンダ/ index.pyx"、行132における

ファイル "パンダ/ index.pyx"、ライン154、 13742:pandas.hashtable.PyObjectHashTable.get_item(パンダ/ hashtable.cで

ファイル "パンダ/ SRC/hashtable_class_helper.pxi"、行732、:pandas.index.IndexEngine.get_loc(4279パンダ/ index.c) pandas.hashtable.PyObjectHashTable.get_item(パンダ/ hashtable.c中)

ファイル "パンダ/ SRC/hashtable_class_helper.pxi"、行740、:13696)

KeyError例外:「日付」

答えて

1

Dateは、これらのDataFramesない列のインデックスであるので、あなたはそのエラーを取得しています。

あなたが代わりに(テスト)行うことができます。

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

はどうもありがとうございます! – Hanshenry90

+0

大歓迎です! – bernie