2015-07-28 74 views
1

我有兩個數據幀,並嘗試加入它們但失敗了,請你幫助我。在熊貓中連接兩個數據幀

數據幀1

 0 
0  0 
1 -100 

... 

20 400 
21 500 

數據幀2

   Rate 
Date    
2015-04-01  NaN 
2015-04-02 -0.00346 
2015-04-03 0.00323 

... 

2015-04-29 0.00296 
2015-04-30 0.00878 

我想加入他們是:

Rate   0 
Date    
2015-04-01  NaN  0 
2015-04-02 -0.00346 -100 
2015-04-03 0.00323  0 

... 

2015-04-29 0.00296 400 
2015-04-30 0.00878 500 

但使用這種

concate = pd.concat([dataframe1, dataframe2], axis=1, join_axes=[dataframe1.index]) 
print gabung 

我得到這個:

   Rate 0 
Date     
2015-04-01  NaN NaN 
2015-04-02 -0.00346 NaN 
2015-04-03 0.00323 NaN 

... 

2015-04-29 0.00296 NaN 
2015-04-30 0.00878 NaN 

如何修復代碼,以便使我得到我想要的結果。謝謝

+0

您的代碼不工作的原因是因爲它試圖對指數保持一致,但該指標值不匹配,所以最好只是將該列作爲匿名np數組值添加,如JoeCondron已回答 – EdChum

回答

0

你可以只是做

dataframe2['values'] = dataframe1[0].values 

所以才插入第二個數據幀一列,因爲這是你想保留的指標之一。我只是選擇'values'作爲結果列中的任意名稱,但您可以放置​​任何您在此處的內容。

+0

謝謝,它的作用就像一個魅力。 –

0

Concatination表示後互相把兩個列表,就像這樣:

df1 = pd.DataFrame({"data":[1,2,3]}) 
df2 = pd.DataFrame({"data":[4,5,6]}) 
pd.concat([df1, df2]) 
    data 
0 1 
1 2 
2 3 
0 4 
1 5 
2 6 

合併(加入)將需要一鍵加入的。

df1 = pd.DataFrame({"data1":[1,2,3], "key":["John", "Janice", "Jake"]}) 
df2 = pd.DataFrame({"data2":[4,5,6], "key":["John", "Janice", "Jake"]}) 
pd.merge(left=df1, right=df2, on="key") 
    data1 key  data2 
0 1 John 4 
1 2 Janice 5 
2 3 Jake 6 

添加一個新的列到現有的數據幀是簡單的賦值:

df1 = pd.DataFrame({"data":[1,2,3]}) 
df2 = pd.DataFrame({"data":[4,5,6]}) 
df1['data2'] = df2['data'] 
    data data2 
0 1 4 
1 2 5 
2 3 6 
+0

謝謝:)你真好。 –

+0

@saturnmoon沒問題,一旦你得到15分,不要忘記加註你認爲最有用的答案。 – firelynx

+0

謝謝你的提醒。我正在學習使用這個網站。 –