2015-07-28 37 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

谢谢你的提醒。我正在学习使用这个网站。 –