根据不同列python数据帧中的null值筛选数据帧列中的值



我在这方面已经有一段时间了,所以希望有人能提供更好的指导。我现在有一个看起来像这样的数据帧(只有更多的行(:

|"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的状态列中的任何Nan值填充为"Nan";释放";只要df.released_date不是空值。

当我这样做的时候,我不断收到各种错误消息,尽管有不同的变体,首先上面的代码是语法错误,我想这是因为notnull((返回了一个布尔数组?

我觉得这有一个简单的答案,但不知怎么的,我没有看到。我没有发现任何这样的问题,我试图根据数据帧中的空值来组织一些东西,这让我想知道我的方法一开始是否不理想?如果数据帧列中的值只返回布尔数组,那么我如何在不使用isnull((或notnull((的情况下,根据另一列中的null值来筛选这些值?使用==Null似乎也不起作用。。。

尝试:

idx = df[(df['status'].isnull()) & (~df['released_date'].isnull())].index
df.loc[idx,'status'] = 'released'

首先获取"status"等于null且"release_date"不等于null的所有行的索引。然后使用df.loc更新状态列。

打印:

released_date    status
0      12/12/20  released
1      10/01/20  released
2           NaN       NaN
3           NaN  released

相关内容

  • 没有找到相关文章

最新更新