2017-03-03 65 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