Pandas 去除null值

数据集中通常会包含null值或空值,对于空值的处理有2种方式:

  • 删除带有null的行或列
  • 用非空值填充null项

检查null值

要处理数据集中的null值,首先要找出DataFrame中的哪些单元格是空的:

movies_df.isnull()

输出

                                          rank  genre  description  director  actors   year  runtime  rating  votes  revenue_millions  metascore
Title
Guardians of the Galaxy                  False  False        False     False   False  False    False   False  False             False      False
Prometheus                               False  False        False     False   False  False    False   False  False             False      False
Split                                    False  False        False     False   False  False    False   False  False             False      False
Sing                                     False  False        False     False   False  False    False   False  False             False      False
Suicide Squad                            False  False        False     False   False  False    False   False  False             False      False
The Great Wall                           False  False        False     False   False  False    False   False  False             False      False
La La Land                               False  False        False     False   False  False    False   False  False             False      False

...                                        ...    ...          ...       ...     ...    ...      ...     ...    ...               ...        ...

Taare Zameen Par                         False  False        False     False   False  False    False   False  False             False      False
Take Me Home Tonight                     False  False        False     False   False  False    False   False  False             False       True
Resident Evil: Afterlife                 False  False        False     False   False  False    False   False  False             False      False
Project X                                False  False        False     False   False  False    False   False  False             False      False
Secret in Their Eyes                     False  False        False     False   False  False    False   False  False              True      False
Hostel: Part II                          False  False        False     False   False  False    False   False  False             False      False
Step Up 2: The Streets                   False  False        False     False   False  False    False   False  False             False      False
Search Party                             False  False        False     False   False  False    False   False  False              True      False
Nine Lives                               False  False        False     False   False  False    False   False  False             False      False

[1000 rows x 11 columns]

isnull()方法返回一个DataFrame,其中每个单元格都是True或False,表示该单元格是不是null状态。

为了统计每一列的空值,可以使用聚合函数sum()进行求和:

movies_df.isnull().sum()

输出

rank                  0
genre                 0
description           0
director              0
actors                0
year                  0
runtime               0
rating                0
votes                 0
revenue_millions    128
metascore            64
dtype: int64

.isnull()本身并不是很有用,通常与sum()等其他方法一起使用。

现在可以看到,数据中revenueue_millions列有128个缺失值,metascore列有64个缺失值。

删除null值

当数据集中有少量缺失值时,建议删除null数据。

删除null值非常简单:

movies_df.dropna()

这个操作将删除任何至少有一个空值的行,但是它将返回一个新的DataFrame,而不更改原来的数据,更改原数据可以在这个方法中指定inplace=True

对于我们的数据集,这个操作将删除128行,其中revenue_millions为空,以及64行,其中metascore为空。

除了删除行,还可以通过设置axis=1删除空值列:

movies_df.dropna(axis=1)

在我们的数据集中,这个操作将删除revenue_millions和metascore列。

axis=1指轴1,即列,轴0是行,这是NumPy中的概念。

NumPy数组轴

NumPy多维数组由轴表示,其中axis-0表示列,axis-1表示行。

图



浙ICP备17015664号联系我们网站地图  
@2019 qikegu.com 版权所有,禁止转载