替换数据框中所有 nan 值的函数出错

Error in a function for Replacing all nan values in a dataframe

我正在尝试在 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".

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

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

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

na_values : scalar, str, list-like, or dict, optional Additional strings to recognize as NA/NaN. If dict passed, specific per-column NA values. By default the following values are interpreted as NaN: ‘’, ‘#N/A’, ‘#N/A N/A’, ‘#NA’, ‘-1.#IND’, ‘-1.#QNAN’, ‘-NaN’, ‘-nan’, ‘1.#IND’, ‘1.#QNAN’, ‘N/A’, ‘NA’, ‘NULL’, ‘NaN’, ‘n/a’, ‘nan’, ‘null’.

你的情况,你可以试试:

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