2017-08-29 150 views
0

是否有可能在一個指定位置添加從一個數據幀到另一個數據幀的行? 我試圖修改this solution,但它不能正常工作。從一個數據幀插入另一個數據行

如果我嘗試以下操作,我行始終被添加爲列:

df1 = pd.concat([df1[:2], df2[1], df1.iloc[2:]]).reset_index(drop=True) 

print (df1) 

    A B C D 0 
0 X X Y Y NaN 
1 15 12 8 4 NaN 
2 NaN NaN NaN NaN 15 
3 NaN NaN NaN NaN 12 
4 NaN NaN NaN NaN 8 
5 NaN NaN NaN NaN 4 
6 21 13 5 9 NaN 

另外,他們看起來像這樣

A B C D 
0 X X Y Y 
1 15 12 8 4 
2 21 13 5 9 



    F G H J 
0 A H C D 
1 15 12 8 4 
2 21 13 5 9 

至於說,我也從行試了一下同樣的數據幀

+0

發現試圖解決......但很想知道這是爲什麼工作和其他不工作: df1 = pd.concat([df1 [:2],df2 [1:2],df1.iloc [2:]])。reset_index(drop = True) – Lazyone

+0

您應該嘗試我的答案也是解決方案。基本上,'df [']'指的是一列,而'df [..:..]'指的是行子頻道。 –

+0

你可以單獨發佈df1和df2嗎? –

回答

0

IIUC:

df1 = pd.DataFrame({'Col1':['A']*5, 'Col2':['B']*5}) 

    Col1 Col2 
0 A B 
1 A B 
2 A B 
3 A B 
4 A B 

df2 = pd.DataFrame(data=[['X','Z'],['W','U'],['T','S']],columns=['Col1','Col2']) 

    Col1 Col2 
0 X Z 
1 W U 
2 T S 

插入行DF2索引行1到索引行2和行3之間DF1:

pd.concat([df1[:2],df2.loc[1,:].to_frame().T,df1[2:]],ignore_index=True) 

輸出:

Col1 Col2 
0 A B 
1 A B 
2 W U 
3 A B 
4 A B 
5 A B 
相關問題