在pandas中连接两个数据帧

时间:2015-07-28 11:16:26

标签: python pandas

我有两个数据框并尝试加入但却失败了,你能不能帮助我。

dataframe 1

      0
0     0
1  -100

...

20  400
21  500

dataframe 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

如何修复代码,以便得到我想要的结果。谢谢

2 个答案:

答案 0 :(得分:0)

你可以做到

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

因此,只需在第二个数据框中插入一列,因为这是您要保留索引的列。我只是选择了'values'作为结果中列的任意名称,但是你可以把任何东西放在那里。

答案 1 :(得分: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