如何正确删除用特定格式读取的na_values



我正试图用.dropna()方法从pandas中删除特定的NA格式,但在应用它时,该方法会返回None对象。

import pandas as pd
# importing data #
df = pd.read_csv(path, sep=',', na_values='NA')
# this is how the df looks like
df = {'col1': [1, 2], 'col2': ['NA', 4]}
df=pd.DataFrame(df)
# trying to drop NA
d= df.dropna(how='any', inplace=True)

此代码返回一个None对象,预期输出可能如下所示:

#   col1 col2
#0     2    4

我该如何调整这种方法?

有没有更简单的方法来完成这项任务?

import numpy as np
import pandas as pd

首先,通过replace()方法将数据帧中的'NA'值替换为实际的'NaN'

df=df.replace('NA',np.nan,regex=True)

最后:

df.dropna(how='any', inplace=True)

现在,如果你打印df,你会得到你想要的输出:

col1    col2
1   2       4.0

如果您想要与您在问题中提到的完全相同的输出,那么只需使用reset_index()方法:

df=df.reset_index(drop=True)

现在,如果您打印df,您将获得:

col1    col2
0   2       4.0

使用字符串'NA'删除记录

df[~df.eq('NA').any(1)]
col1 col2
1     2    4

最新更新