删除空行后,熊猫的数据框变为空

时间:2020-05-22 05:11:37

标签: python pandas dataframe

我有以下数据集:

     Survived  Not Survived
0         NaN          22.0
1        38.0           NaN
2        26.0           NaN
3        35.0           NaN
4         NaN          35.0
..        ...           ...
886       NaN          27.0
887      19.0           NaN
888       NaN           NaN
889      26.0           NaN
890       NaN          32.0

我想删除所有包含NaN的行,因此我编写了以下代码(数据集的名称为titanic_feature_data):

titanic_feature_data = titanic_feature_data.dropna()

当我尝试显示新数据集时,我得到以下结果:

Empty DataFrame
Columns: [Survived, Not Survived]
Index: []

出什么问题了?以及我该如何解决?

1 个答案:

答案 0 :(得分:0)

通过使用titanic_feature_data.dropna(),您将删除所有具有至少一个缺失值的行。从问题中打印的数据来看,似乎所有行都至少包含一个缺失值。是否可能仅您的所有行都包含至少一个缺失值?如果是这样,则完全有道理,dropna()之后您的数据框为空,对吧?

已经说过,也许您正在寻找删除某个特定列(例如列Not Survived)缺少值的行。然后,您可以使用:

titanic_feature_data.dropna(subset='Not Survived')

此外,如果您对为什么删除某些行感到困惑,建议您先显式检查缺失值,而不删除它们。这样一来,您就可以看到哪些实例将被删除

incomplete_rows = titanic_feature_data.isnull().any(axis=1)

incomplete_rows是一个布尔序列,它指示一行是否包含任何缺失值。您可以使用此系列来子集数据框,并查看哪些行包含缺失值(在您的示例中大概是所有值)

titanic_feature_data.loc[incomplete_rows, :]
相关问题