2017-07-27 43 views
0

Supose這個代碼大熊貓添加多個列(即不存在),以行數據幀的

a = pd.DataFrame([1,2,3]) 

,如果我做

a.loc[0,'A']=3 

我得到:

0 A 
0 1 3 
1 2 NaN 
2 3 NaN 

現在假設:

a = pd.DataFrame([1,2,3]) 
b=pd.DataFrame([[5,4],[6,3],[7,2]],columns=['B','C']) 

有沒有辦法做了[1, 'A', 'B'] = B [2]得到的結果

0 B C 
0 1 NaN NaN 
1 2 7 2 
2 3 NaN NaN 

更新:我改了一下這個問題,因爲答案supose那a和b具有相同的索引,而不是。

回答

1

一種可能性:

import pandas as pd 

a = pd.DataFrame([1, 2, 3]) 
b = pd.DataFrame([[5, 4], [6, 3], [7, 2]], columns=['B', 'C']) 

a.loc[0, 'B'] = b.loc[0, 'B'] 
a.loc[0, 'C'] = b.loc[0, 'C'] 

這給作爲a

0 B C 
0 1 5.0 4.0 
1 2 NaN NaN 
2 3 NaN NaN 
4

你可以在a使用joinb

In [150]: a.join(b.loc[0:0]) 
Out[150]: 
    0 B C 
0 1 5.0 4.0 
1 2 NaN NaN 
2 3 NaN NaN 
1

所需的行如何pd.concat

pd.concat([a,b.loc[b.index==0,:]],axis=1) 

Out[53]: 
    0 B C 
0 1 5.0 4.0 
1 2 NaN NaN 
2 3 NaN NaN