这是我的代码
import pandas as pd
df = read.csv....
df.dropna(subset=['Filmname'], inplace=True)
df.head()
但不会丢弃这些值。为什么? (见截图上的结果)
答案 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作为开始