根据不同列 python 数据框中的空值过滤数据框列中的值
filter values in a dataframe column based on null values in a different column python dataframe
我一直坚持这个问题,希望有人能提供更好的指导。
我目前有一个看起来像这样的数据框(只有更多行):
|"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 不是空值,在 df 的状态列中用“已发布”填充任何 Nan 值。
尽管在不同的变体中执行此操作时,我不断收到各种错误消息,首先是上面的代码是语法错误,我想这是因为 notnull() return 是一个布尔数组?
我觉得对此有一个简单的答案,但不知何故我没有看到。我没有发现任何类似这样的问题,我试图根据数据框中的空值组织一些东西,这让我想知道我的方法是否首先不理想?如果那些只有 return 布尔数组,我如何根据不同列中的空值过滤数据框列中的值而不使用 isnull() 或 notnull()?使用 == Null 似乎也不起作用...
尝试:
idx = df[(df['status'].isnull()) & (~df['released_date'].isnull())].index
df.loc[idx,'status'] = 'released'
首先获取所有'status'等于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
我一直坚持这个问题,希望有人能提供更好的指导。 我目前有一个看起来像这样的数据框(只有更多行):
|"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 不是空值,在 df 的状态列中用“已发布”填充任何 Nan 值。
尽管在不同的变体中执行此操作时,我不断收到各种错误消息,首先是上面的代码是语法错误,我想这是因为 notnull() return 是一个布尔数组?
我觉得对此有一个简单的答案,但不知何故我没有看到。我没有发现任何类似这样的问题,我试图根据数据框中的空值组织一些东西,这让我想知道我的方法是否首先不理想?如果那些只有 return 布尔数组,我如何根据不同列中的空值过滤数据框列中的值而不使用 isnull() 或 notnull()?使用 == Null 似乎也不起作用...
尝试:
idx = df[(df['status'].isnull()) & (~df['released_date'].isnull())].index
df.loc[idx,'status'] = 'released'
首先获取所有'status'等于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