Python 如何基于查找在熊猫中填充NA值?
我有一些NA值,但我想用特定的查找来替换它们。让我给你举个例子 >>> runners_df = pd.DataFrame(runners) >>> runners_df year name miles 0 2010 Paul 6.0 1 2010 Paul 4.0 2 2010 Paul NaN 3 2011 Paul 8.0 4 2011 Paul 8.0 5 2012 Paul 9.0 6 2012 Paul 12.0 >>> average_miles_per_year = runners_df.groupby(['year','name'])['miles'].mean().reset_index() >>> average_miles_per_year year name miles 0 2010 Paul 5.0 1 2011 Paul 8.0 2 2012 Paul 10.5 >>> >>>runners\u df=pd.DataFrame(runners) >>>跑步者 年份名称英里数 0 2010保罗6.0 1 2010保罗4.0 2 2010年保罗·南 3 2011保罗8.0 4 2011保罗8.0 5 2012保罗9.0 6 2012保罗12.0 >>>每年平均里程=跑步者分组(['year','name'])['miles']。平均值()。重置指数() >>>每年平均英里数 年份名称英里数 0 2010保罗5.0 2011年1月8日保罗8.0 2 2012年10月5日 >>> 在本例中,我希望Pauls NaN值填充为5.0,因为2010年他的平均英里数为5Python 如何基于查找在熊猫中填充NA值?,python,pandas,data-science,Python,Pandas,Data Science,我有一些NA值,但我想用特定的查找来替换它们。让我给你举个例子 >>> runners_df = pd.DataFrame(runners) >>> runners_df year name miles 0 2010 Paul 6.0 1 2010 Paul 4.0 2 2010 Paul NaN 3 2011 Paul 8.0 4 2011 Paul 8.0 5 2012 Paul 9.
非常感谢。尝试将
fillna
与groupby
和transform
一起使用:
runners['miles'] = runners['miles'].fillna(runners.groupby(['year','name'])['miles']
.transform('mean'))
输出:
year name miles
0 2010 Paul 6.0
1 2010 Paul 4.0
2 2010 Paul 5.0
3 2011 Paul 8.0
4 2011 Paul 8.0
5 2012 Paul 9.0
6 2012 Paul 12.0
谢谢!这很有效。如果我想做同样的事情,除了使用一个分类变量,该怎么办。例如,如果有一列是“outdoor_track”,我想用他每年最常运行的轨迹位置来填充缺少的值。显然,转换('mean')在这种情况下不起作用case@Al92尝试中值,该分类值的最常见实例。