我该如何处理这种情况:“n/a”在 pandas 数据框中显示为“nan”,但无法对其进行字符串匹配和替换

Posted

技术标签:

【中文标题】我该如何处理这种情况:“n/a”在 pandas 数据框中显示为“nan”,但无法对其进行字符串匹配和替换【英文标题】:How do I handle this situation: 'n/a' shows up as 'nan' in pandas dataframe, but cannot string-match it and replace 【发布时间】:2018-12-16 15:57:27 【问题描述】:

我有一个 CSV 文件,其中有几行是 n/a。当我将它作为熊猫数据框加载时,它显示为nan

当我在这几行中使用 splitlower 等函数时,这会导致问题。

data_df['column'][104]
>>> nan

data_df['column'][104].split()
>>> 
AttributeError                            Traceback (most recent call last)
<ipython-input-38-6efe06f0a4ec> in <module>()
----> 1 data_df['column'][104].split()

AttributeError: 'float' object has no attribute 'split'

data_df['column'][104].lower()
>>>
AttributeError                            Traceback (most recent call last)
<ipython-input-41-c80cc9ae0712> in <module>()
----> 1 data_df['column'][104].lower()

AttributeError: 'float' object has no attribute 'lower'

当我尝试用空格替换 nans 时(不会导致这些错误),使用 fillna 方法时,它不会做任何事情:

data_df.fillna('')

data_df['column'][104]
>>> nan

所以我尝试将其替换为字符串:

for i in range(len(data_df)):
    if data_df['column'][i]=='nan':
        data_df['column'][i]=''

data_df['column'][104]
>>> nan

for i in range(len(data_df)):
    if data_df['column'][i]=='n/a':
        data_df['column'][i]=''

data_df['column'][104]
>>> nan

以下不打印任何内容:

for i in range(len(data_df)):
    if (data_df['column'][i]=='nan' or data_df['column'][i]=='n/a'):
        print(data_df['column'][i])

为什么我无法捕捉和替换nans 或n/as?我该如何解决?

【问题讨论】:

您可以尝试df = pd.read_csv('csvfile.csv' ,na_filter=False),但这不会检测到任何缺失值标记。 【参考方案1】:

我认为我们可以在一开始就解决它

df=pd.read_csv('Yourfile.csv',na_values=['n/a']).fillna('')

【讨论】:

有趣。有用。但是为什么我没能赶上n/as? @Kristada673 你可以抓住它,只需将它分配回去,df=df.fillna('')【参考方案2】:

data_df.fillna('') 创建数据框的副本。如果要更改原始数据框,请致电data_df.fillna('', inplace=True)

【讨论】:

以上是关于我该如何处理这种情况:“n/a”在 pandas 数据框中显示为“nan”,但无法对其进行字符串匹配和替换的主要内容,如果未能解决你的问题,请参考以下文章

如果连接关闭,我该如何处理连接并重新连接?

Codeigniter:当我插入数据时出现重复键错误,我该如何处理这个错误?

我该如何处理这个 Array 对象? (目标-C)

django MultiValueDictKeyError 错误,我该如何处理

我该如何处理这个警告:哈希不匹配?

xampp 错误(我在安装 Xampp 和 apache 时遇到此错误。我该如何处理?)