我使用的是 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.nan
或None
)。然后,我们使用 df[boolean_mask]
选择其索引对应于掩码中的真值的行。
关于python - 试图在数据框中删除 NaN 索引行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19670904/