python - 如何根据索引将单列中的 NaN 替换为 0
问题描述
编码非常新,所以请原谅我缺乏知识
我目前有一个看起来像这样的数据框:
date A B C
2006-11-01 NaN 1 NaN
2016-11-02 NaN NaN 1
2016-11-03 1 NaN NaN
2016-11-04 NaN 1 NaN
2016-11-05 NaN 1 NaN
2016-11-06 NaN NaN NaN
2016-11-07 NaN 1 NaN
例如,我想要做的是:
将 2016 年 11 月 3 日之后的所有日期的 A 列中的所有 NaN 替换为 0,并且能够对每一列执行相同的操作,但对应的日期不同。
我努力了
for col in df:
if col == 'A' & 'date' > '2016-11-03':
value_1 = {'A':0}
df = df.fillna(value=value_1)
但我收到了这个错误TypeError: unsupported operand type(s) for &: 'str' and 'str'
我确定这与我缺乏知识有关,但我不确定如何继续。
编辑:我正在寻找的是这样的:
date A B C
2006-11-01 NaN 1 NaN
2016-11-02 NaN NaN 1
2016-11-03 1 NaN NaN
2016-11-04 0 1 NaN
2016-11-05 0 1 NaN
2016-11-06 0 NaN NaN
2016-11-07 0 1 NaN
解决方案
该条件由两部分组成:在某个日期之后和为 NaN。
condition = (df['date'] > '2016-11-03') & df['A'].isnull()
现在,选择符合条件的行,并使 A 列中的相应项目等于 0:
df.loc[condition, 'A'] = 0
推荐阅读
- angular - Angular typescript TypeError:无法读取未定义的属性'setDomLayout' - 使用ag-grid测试组件
- php - uniqid() 没有在 Foreach 循环中生成唯一值 - PHP
- mongodb - 使用 mongodb 文档的其他字段显示数组的条件大小
- javascript - react table v6,对象作为React子无效
- ruby-on-rails - 查询 Rails/Arel/Postgresql 中存在 json 键的记录
- python - 在 Kivy,python 中显示 RTSP 流
- python - 下拉菜单未单击 python selenium
- java - Eclipse Enterprise 中的 Oracle、GlassFish 工具
- python - 分配给函数的值未呈现
- java - 从jsp用sql访问jstl