2015-07-11 147 views
2

我有兩個dataframes這樣的:熊貓2個dataframes,某種合併的

df['one'] = [1,2,3,4,5] 
df['two'] = [nan, 15, nan, 22, nan] 

我需要某種形式的加入或合併,這將給我的數據幀是這樣的:

df['result'] = [1,15,3,22,5] 

任何想法?

+0

另一種選擇:'df.two.fillna(df.one)' –

回答

2

您可以使用np.where來做到這一點。因此,如果df.twoNaN,則使用df.one的值,否則使用df.two

import pandas as pd 
import numpy as np 

# your data 
# ======================================== 
df = pd.DataFrame(dict(one=[1,2,3,4,5], two=[np.nan, 15, np.nan, 22, np.nan])) 
print(df) 


    one two 
0 1 NaN 
1 2 15 
2 3 NaN 
3 4 22 
4 5 NaN  


# processing 
# ========================================  
df['result'] = np.where(df.two.isnull(), df.one, df.two) 


    one two result 
0 1 NaN  1 
1 2 15  15 
2 3 NaN  3 
3 4 22  22 
4 5 NaN  5  
+0

謝謝我的朋友,這正是我需要!! – markan3

+0

@ markan3你是最受歡迎的。很高興它有幫助。 :-) –

2

可以使用熊貓方法combine_first()填補從數據幀或系列與另一個值的缺失值;在這種情況下,要填補遺漏值在df['two']相應的值在df['one']

In [342]: df['result']= df['two'].combine_first(df['one']) 

In [343]: df 
Out[343]: 
    one two result 
0 1 NaN  1 
1 2 15  15 
2 3 NaN  3 
3 4 22  22 
4 5 NaN  5