2017-03-03 26 views
3

我有一個我試圖清理的航空數據集。 NumEngines功能有一些缺失值,但也有一些情況下,可能會從數據框的其他位置導出缺失值(這並非總是如此)。下面是我的數據集的一個小例子來說明這兩種情況。請注意,可以使用第一個塞斯納條目填寫第二條,但對於派珀而言,情況並非如此。用DataFrame中其他位置可能存在的值填充缺失值?

df = pd.DataFrame() 
df["Make"] = ["Cessna","Piper","Cessna","Boeing"] 
df["Model"] = ["Citation","PA32RT","Citation","737-300"] 
df["NumEngines"] = [2,None,None,2] 

我怎樣才能讓這個產生的數據幀將

 Make  Model NumEngines 
0 Cessna Citation   2.0 
1 Piper PA32RT   NaN 
2 Cessna Citation   2.0 
3 Boeing 737-300   2.0 

回答

3

我敢打賭transform('first')可能使其再次在這裏:

df.groupby(['Make', 'Model']).transform('first') 
Out[179]: 
    NumEngines 
0   2.0 
1   NaN 
2   2.0 
3   2.0 
+0

什麼參數「第一」嗎? –

+0

獲取子組的第一個非na值 – Boud