2016-06-24 6 views
0

私はいくつかのデータフレームをマージすることとちょっと混乱しています。以下のデータフレームは、(dayDataおよびデータ)と呼ばれています。データフレームの混乱

dayData:

   id   stock_name broad_sector currency 
0 BBG.XLON.BTA.S  BT GROUP PLC Communications  GBp 
1 BBG.XLON.VOD.S VODAFONE GROUP PLC Communications  GBp 

dayData type <class 'pandas.core.series.Series'> 
dayData index [0 1] 

データ:

  id 
BBG.XLON.BTA.S 301.221525 
BBG.XLON.VOD.S 213.791400 

Name: 2008-02-20 00:00:00, dtype: float64 
data index [0 1] 

dayDataのデータフレームは、私がしようとすると、マージ後、データフレームに変換し、シリーズでありますデータフレームのデータフレーム:

data = data.to_frame().reset_index() 
data.columns = ['id', 'price'] 
dayData = dayData.merge(data[['price']], left_on='id', right_index=True) 

ただし、返されるdayDataデータフレームは空です。私は返すように期待しています何

Empty DataFrame 
Columns: [id, stock_name, broad_sector, currency, price] 
Index: [] 

は次のとおりです。

   id   stock_name broad_sector currency  price 
0 BBG.XLON.BTA.S  BT GROUP PLC Communications  GBp 301.221525 
1 BBG.XLON.VOD.S VODAFONE GROUP PLC Communications  GBp 213.791400 

私が間違って何をやったか任意のアイデア?

おかげで、

+2

インデックスをリセットしますが、ここでインデックスにマージしようとします: 'dayData = dayData.merge(data [['price']]、left_on = 'id'、right_index = True)'なぜ一般的なカラム名: 'dayData = dayData.merge(data [['price']]、on = 'id')'? – EdChum

+0

サンプルデータsozeを削除した場合、問題のコードスニペットを実行することは可能でしょうか?データをフレームにローダするなど、寄稿するのに多大な助けとなるでしょう。そうでなければ、プリントアウトを見つめて、さらにクリックする傾向があります。 – Dilettant

+0

Thankdエド、私はあなたの変更を実装しようとしましたが、コードが戻ります:KeyError: 'id '、どのように私はインデックスにIDを設定する任意のアイデア? – Stacey

答えて

0

私はあなたができるjoinSerieDataFrameに思うが、data.name = 'price'によってpriceにセットSerie name前:

print (dayData) 

       id   stock_name broad_sector currency 
0 BBG.XLON.BTA.S  BT GROUP PLC Communications  GBp 
1 BBG.XLON.VOD.S VODAFONE GROUP PLC Communications  GBp 

data.name = 'price' 
print (data) 

id 
BBG.XLON.BTA.S 301.221525 
BBG.XLON.VOD.S 213.791400 
Name: price, dtype: float64 

dayData = dayData.join(data, on='id') 

print (dayData) 
       id   stock_name broad_sector currency  price 
0 BBG.XLON.BTA.S  BT GROUP PLC Communications  GBp 301.221525 
1 BBG.XLON.VOD.S VODAFONE GROUP PLC Communications  GBp 213.791400 

Joining key columns on an index

+0

を試してみてください。 – jezrael