首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >熊猫填充剂不起作用

熊猫填充剂不起作用
EN

Stack Overflow用户
提问于 2017-09-23 07:38:55
回答 1查看 2.3K关注 0票数 2

我有一个dataframe problem_data,它在一些单元格中有NaN值。我运行了以下代码。

代码语言:javascript
复制
problem_data[problem_data['level_type'] == 5.0]

其结果是:

代码语言:javascript
复制
      problem_id    level_type  points  tags 
5    prob_1479    5.0        NaN    NaN 
31   prob_2092    5.0        NaN    NaN 
38   prob_4395    5.0        NaN    combinatorics,constructive algorithms,dfs 
43   prob_5653    5.0        NaN    NaN 
48   prob_2735    5.0       2750.0  NaN 
52   prob_1054    5.0       2000.0  combinatorics,dp
64   prob_2610    5.0        NaN    NaN
65   prob_1649    5.0        NaN    NaN
70   prob_4675    5.0        NaN    dp,games
74   prob_445     5.0        NaN    NaN
81   prob_6481    5.0       2500.0  combinatorics,dp,implementation,number theory
134  prob_2964    5.0       2500.0  games
161  prob_948     5.0       2000.0  dp,games
182  prob_642     5.0        NaN    NaN 

然后,我运行以下命令来填充“points”列的NaN。

代码语言:javascript
复制
problem_data.loc[problem_data['level_type'] == 5.0 , 'points'].fillna(value=2500, inplace=True)

当我再次运行problem_data[problem_data['level_type'] == 5.0]时,输出与以前相同。

你能说出为什么fillna()不在这里工作吗?我能做些什么来纠正它?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-09-23 07:40:31

fillna在数据子片上不工作。你会想:

代码语言:javascript
复制
mask = problem_data['level_type'] == 5.0
problem_data.loc[mask, 'points'] = problem_data.loc[mask, 'points'].fillna(value=2500)

problem_data.loc[mask, 'points'] 
5      2500.0
31     2500.0
38     2500.0
43     2500.0
48     2750.0
52     2000.0
64     2500.0
65     2500.0
70     2500.0
74     2500.0
81     2500.0
134    2500.0
161    2000.0
182    2500.0
Name: points, dtype: float64
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46377263

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档