python - 试图在数据框中删除 NaN 索引行

标签 python pandas dataframe

我使用的是 python 2.7.3 和 Pandas 版本 0.12.0。

我想删除带有 NaN 索引的行,以便我只有有效的 site_id 值。

print df.head()
            special_name
site_id
NaN          Banana
OMG          Apple

df.drop(df.index[0])

TypeError: 'NoneType' object is not iterable

如果我尝试删除一个范围,如下所示:

df.drop(df.index[0:1])

我收到此错误:

AttributeError: 'DataFrame' object has no attribute 'special_name'

最佳答案

使用 pandas 版本 >= 0.20.0,您可以:

df = df[df.index.notnull()]

旧版本:

df = df[pandas.notnull(df.index)]

分解:

notnull 生成一个 bool 掩码,例如[False, False, True],其中True表示对应位置的值为null(numpy.nanNone)。然后,我们使用 df[boolean_mask] 选择其索引对应于掩码中的真值的行。

关于python - 试图在数据框中删除 NaN 索引行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19670904/

相关文章:

python - pandas 滚动分组时间序列数据

python - 在 pandas dataframe 中环绕索引进行切片的好方法

r - 在每 3 列之后拆分一行并将这 3 列作为 r 中的新行传输

python - 提示 : No function matches the given name and argument types. 您可能需要添加显式类型转换。 TrigramSimilarity Django

python - 从 json 字符串中读取数据并使用 python 对其进行操作

python - 尝试在 PYSPARK 中的 Nonetype 属性(null)上跳过 python UDF

python - 在项目列表上调用一个函数的最简洁的方法

python - 重命名 pandas 数据框的列名称未按预期工作 - python

python - 您如何管理数据框中丢失的日期?

python - 使用相同的索引 pandas 按行合并两个数据帧