基于值比较从数据框中删除行时出错

我在数据框列中有以下唯一值。

['1473' '1093' '1346' '1324' 'NA' '1129' '58' '847' '54' '831' '816']

我想删除'NA'此列中的行。

testData = testData[testData.BsmtUnfSF != "NA"]

并得到错误

TypeError: invalid type comparison

然后我试过了

testData = testData[testData.BsmtUnfSF != np.NAN]

它不会给出任何错误,但不会删除行。

如何解决这个问题?


jeck猫
浏览 204回答 3
3回答

潇湘沐

假设您的数据帧:>>> df    col10   14731   10932   13463   13244    NaN5   11296     587    8478     549    83110   816您有多种解决方案:>>> df[pd.notnull(df['col1'])]    col10   14731   10932   13463   13245   11296     587    8478     549    83110   816>>> df[df.col1.notnull()]#  df[df['col1'].notnull()]    col10   14731   10932   13463   13245   11296     587    8478     549    83110   816>>> df.dropna(subset=['col1'])    col10   14731   10932   13463   13245   11296     587    8478     549    83110   816>>> df.dropna()    col10   14731   10932   13463   13245   11296     587    8478     549    83110   816>>> df[~df.col1.isnull()]    col10   14731   10932   13463   13245   11296     587    8478     549    83110   816

慕村225694

你可以使用dropnatestData = testData.dropna(subsets = 'BsmtUnfSF']

慕田峪9158850

这是您如何做到的。只需更改column您想要的列名。import pandas as pdimport numpy as npdf = pd.DataFrame({"column": [1,2,3,np.nan,6]})df = df[np.isfinite(df['column'])]
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python