2014-09-24 73 views
0
import pandas 
a=[['Date', 'letters', 'numbers', 'mixed'], ['1/2/2014', 'a', '6', 'z1'], ['1/2/2014', 'a', '3', 'z1'], ['1/3/2014', 'c', '1', 'x3']] 
df = pandas.DataFrame.from_records(a[1:],columns=a[0]) 

b= [['a', 'b', 'c'], ['a', 'b', 'c']] 
df2 = pandas.DataFrame.from_records(b[1:],columns=b[0]) 

我想加入DF2對DF所以它看起來是這樣的:熊貓:加入一行數據上的特定指數

 Date letters numbers mixed a b c 
0 1/2/2014  a  6 z1 
1 1/2/2014  a  3 z1 a b c 
2 1/3/2014  c  1 x3 

通過文檔看,我親如df=df.join(df2,how='outer')

它給你這樣的:

 Date letters numbers mixed a b c 
0 1/2/2014  a  6 z1 a b c 
1 1/2/2014  a  3 z1 NaN NaN NaN 
2 1/3/2014  c  1 x3 NaN NaN NaN 

我想是這樣df=df.join(df2,how='outer', on_index = 1)

+0

沒有任何操作可以做你想做的事情,你必須更新你的索引值,以便將df行放在你想要的位置,因爲用戶Ffisegydd在他的回答中已經顯示 – EdChum 2014-09-24 12:48:03

回答

2

它已經沒有做特定的索引聯接,它只是恰巧是你在df2指數爲0,所以當它加入它放在索引0

import pandas 

a=[['Date', 'letters', 'numbers', 'mixed'], ['1/2/2014', 'a', '6', 'z1'], ['1/2/2014', 'a', '3', 'z1'], ['1/3/2014', 'c', '1', 'x3']] 
df = pandas.DataFrame.from_records(a[1:],columns=a[0]) 

b= [['a', 'b', 'c'], ['a', 'b', 'c']] 
df2 = pandas.DataFrame.from_records(b[1:],columns=b[0], index=[1]) 

df=df.join(df2,how='outer') 

print(df) 
#  Date letters numbers mixed a b c 
# 0 1/2/2014  a  6 z1 NaN NaN NaN 
# 1 1/2/2014  a  3 z1 a b c 
# 2 1/3/2014  c  1 x3 NaN NaN NaN 

'a', 'b', 'c'在這我已經使用關鍵字參數index = [1]設置了df2的索引。如果您不能使用此關鍵字參數,那麼您可以使用df2.index = [1]更改索引(在此特定示例中),這應在連接兩個數據框之前完成。

+0

我明白了,指數? – jason 2014-09-24 12:48:43

+0

您必須確保您要加入的行具有與您最終想要的位置相同的索引,是的。目前(無需重新索引),它在說*「哦,好吧在'df2'我是在索引0所以我把自己在指數0'df'」 * – Ffisegydd 2014-09-24 12:50:00

+0

我怎麼重新索引'1' 'df2'已經喂入後?我不能索引它,當我喂'df'在 – jason 2014-09-24 12:50:09