dropna不起作用:原因可能是什么

时间:2018-06-15 14:07:10

标签: python pandas

我尝试将所有na值放在一列' Filmname中 enter image description here

这是我的代码

import pandas as pd
df = read.csv....

df.dropna(subset=['Filmname'], inplace=True)
df.head()

但不会丢弃这些值。为什么? (见截图上的结果)

2 个答案:

答案 0 :(得分:2)

默认情况下," na" NaN不会将pandas.read_csv视为NaN

您可以通过na_values参数手动将其添加为df = pd.read_csv('file.csv', na_values=['na']) 字符串:

import

根据docs

  

na_values :scalar,str,list-like或dict,默认无

     

要识别为NA / NaN的其他字符串。如果dict通过,具体   每列NA值。默认情况下,将解释以下值   作为NaN:'','#N / A','#N / A N / A','#N',' - 1。#IND',' - 1。#QNAN',' - 'N',   '-nan','1。#IND','1。#QNAN','N / A','NA','NULL','NaN','n / a','nan',   “NULL”。

答案 1 :(得分:1)

看起来这个截图中你的值不是“NaN”或者是一些真正的错误,而是一个解析后的字符串,其值为“na”。

为了在此列中过滤掉具有此值的行,您可以使用条件简单地引用df,而不是使用dropna:

df = pd.read_csv(...)
filtered_df = df[df['Filmname'] != 'na']

内部条件可能是任何内容,请参阅this guide作为开始