条件 NaN 填充不更改列或全部为 None

我有一个 df,其中有一列 Critic_Score,该列具有 NaN 值。我试图用同一平台的评论家分数的平均值来替换它们。这个问题已经在堆栈溢出上被问过好几次了,我使用了 4 个建议,但没有给我想要的输出。请告诉我如何解决这个问题。


这是 df 的子集:


x[['Platform','Critic_Score']].head()


Platform    Critic_Score

0   wii 76.0

1   nes NaN

2   wii 82.0

3   wii 80.0

4   gb  NaN

有关原始 df 的更多信息:


x.head().to_dict('list')

{'Name': ['wii sports',

  'super mario bros.',

  'mario kart wii',

  'wii sports resort',

  'pokemon red/pokemon blue'],

 'Platform': ['wii', 'nes', 'wii', 'wii', 'gb'],

 'Year_of_Release': [2006.0, 1985.0, 2008.0, 2009.0, 1996.0],

 'Genre': ['sports', 'platform', 'racing', 'sports', 'role-playing'],

 'NA_sales': [41.36, 29.08, 15.68, 15.61, 11.27],

 'EU_sales': [28.96, 3.58, 12.76, 10.93, 8.89],

 'JP_sales': [3.77, 6.81, 3.79, 3.28, 10.22],

 'Other_sales': [8.45, 0.77, 3.29, 2.95, 1.0],

 'Critic_Score': [76.0, nan, 82.0, 80.0, nan],

 'User_Score': ['8', nan, '8.3', '8', nan],

 'Rating': ['E', nan, 'E', 'E', nan]}

这些是我尝试过的语句及其输出:


1.


x['Critic_Score'] = x['Critic_Score'].fillna(x.groupby('Platform')['Critic_Score'].transform('mean'), inplace = True)


0    None

1    None

2    None

3    None

4    None

Name: Critic_Score, dtype: object

x.loc[x.Critic_Score.isnull(), 'Critic_Score'] = x.groupby('Platform').Critic_Score.transform('mean')

#no change in column

0    76.0

1     NaN

2    82.0

3    80.0

4     NaN

x['Critic_Score'] = x.groupby('Platform')['Critic_Score']\

    .transform(lambda y: y.fillna(y.mean()))

#no change in column

0    76.0

1     NaN

2    82.0

3    80.0

4     NaN

Name: Critic_Score, dtype: float64

x['Critic_Score']=x.groupby('Platform')['Critic_Score'].apply(lambda y:y.fillna(y.mean()))

x['Critic_Score'].head()


Out[73]:

0    76.0

1     NaN

2    82.0

3    80.0

4     NaN

Name: Critic_Score, dtype: float64


一只斗牛犬
浏览 80回答 1
1回答

Cats萌萌

x.update(     x.groupby('Platform').Critic_Score.transform('mean'),     overwrite=False)首先,您创建一个具有相同行数但每行具有平台平均值的新 df。然后用它来更新原来的请记住,您的样本只有一行nes和另一行gb,两者都有nan分数,所以没有什么可以平均的
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python