【问题标题】:Error in a function for Replacing all nan values in a dataframe [duplicate]替换数据框中所有nan值的函数出错[重复]
【发布时间】:2019-11-29 20:37:29
【问题描述】:

我正在尝试在 python 中创建一个函数来将任何形式的 NaN 替换为 NaN。

import pandas as pd
import numpy as np

data=pd.read_csv("diabetes.csv")

def proc_all_NaN(data):
    nan_sym=["_","-","?","","na","n/a"]
    for i in nan_sym:
        data.replace(i,np.nan)

proc_all_NaN(data)

我希望我的函数的输出是具有 NaN 的数据帧,其中数据帧具有所有这些类型的 NaN:“_”、“-”、“?”、“”、“na”、“n/a” .

我调用函数时的输出只是我的数据,没有任何变化。

你能帮我吗,因为我没有得到我的编码错误

【问题讨论】:

标签: python pandas dataframe machine-learning nan


【解决方案1】:

您可以在使用pd.read_csv() 读取文件时定义空值的类型。根据docs

na_values:标量、str、类列表或字典,可选 要识别为 NA/NaN 的附加字符串。如果 dict 通过,特定的每列 NA 值。默认情况下,以下值被解释为 NaN:''、'#N/A'、'#N/AN/A'、'#NA'、'-1.#IND'、'-1.#QNAN'、 '-NaN'、'-nan'、'1.#IND'、'1.#QNAN'、'N/A'、'NA'、'NULL'、'NaN'、'n/a'、'nan ', '空'。

你的情况,你可以试试:

data=pd.read_csv("diabetes.csv", na_values=["_","-","?","","na","n/a"])

【讨论】:

    猜你喜欢
    • 2014-01-28
    • 2018-11-13
    • 2021-06-29
    • 2021-08-25
    • 1970-01-01
    • 1970-01-01
    • 2017-04-22
    • 2020-02-26
    • 2018-03-18
    相关资源
    最近更新 更多