2015-10-15 81 views
1

填充數據框中缺失值與列表項目的最佳方式是什麼? 例如:在熊貓數據框中填充缺失值與列表中的項目

pd.DataFrame([[1,2,3],[4,5],[7,8],[10,11,12],[13,14]]) 

     0 1 2 
    0 1 2 3 
    1 4 5 NaN 
    2 7 8 NaN 
    3 10 11 12 
    4 13 14 NaN 

list = [6, 9, 150] 

得到一些這樣的事情:

 0 1 2 
    0 1 2 3 
    1 4 5 6 
    2 7 8 9 
    3 10 11 12 
    4 13 14 15 
+0

如果您有兩列都有缺失值,那該怎麼辦?你用什麼命令來填補這些缺失的值? – xwang

回答

1

這其實是有點棘手和黑客攻擊的一位,如果你知道列要填充的NaN值因爲那時你可以構造一個DF與缺失值的索引的列,並通過使用df fillna

In [33]: 
fill = pd.DataFrame(index =df.index[df.isnull().any(axis=1)], data= [6, 9, 150],columns=[2]) 
df.fillna(fill) 

Out[33]: 
    0 1 2 
0 1 2 3 
1 4 5 6 
2 7 8 9 
3 10 11 12 
4 13 14 150 

您不能通過二CT(我原來的答覆)作爲字典鍵值的列值,以匹配和標值將用於該列所有NaN值這是不是你想要的東西:

In [40]: 
l=[6, 9, 150] 
df.fillna(dict(zip(df.index[df.isnull().any(axis=1)],l))) 

Out[40]: 
    0 1 2 
0 1 2 3 
1 4 5 9 
2 7 8 9 
3 10 11 12 
4 13 14 9 

你可以看到,它已將NaN全部替換爲9,因爲它與缺失的NaN索引值2匹配,並且列2