我对此已经坚持了一段时间,希望有人能提供更好的指导。我目前有一个看起来像这样的数据框(只会增加行):
|"released_date"| "status" |
+-------------+--------+
| 12/12/20 |released|
+-------------+--------+
| 10/01/20 | NaN |
+-------------+--------+
| NaN | NaN |
+-------------+--------+
| NaN. |released|
+-------------+--------+
我想做 df['status'].fillna('released' if df.released_date.notnull())
aka,只要df.released_date不是空值,就用“ released”填充df状态栏中的所有Nan值。
尽管这样做的方式有所不同,但我不断收到各种错误消息,首先是上面的代码是语法错误,我想这是因为notnull()返回布尔数组吗?
我觉得对此有一个简单的答案,但我不知何故。我没有发现任何这样的问题,即我试图基于数据框中的空值来组织某些东西,这使我想知道我的方法是否一开始就不理想?如果这些数据仅返回布尔数组,如何在不使用isull()或notnull()的情况下,根据不同列中的空值过滤数据框列中的值?使用== Null似乎也不起作用...
尝试:
idx = df[(df['status'].isnull()) & (~df['released_date'].isnull())].index
df.loc[idx,'status'] = 'released'
首先获取“状态”等于null和“ released_date”音符等于null的所有行的索引。然后使用df.loc
更新状态列。
印刷品:
released_date status
0 12/12/20 released
1 10/01/20 released
2 NaN NaN
3 NaN released
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句