【问题标题】:Turn different types of missing values into pandas-recognisable NA's将不同类型的缺失值转换为 pandas 可识别的 NA
【发布时间】:2021-07-20 03:50:56
【问题描述】:

我有一个数据框,其中包含各种指示缺失的不同值。我以一种方式对其进行了修改,现在它们应该都指定为“NaN”,如下所示:

import numpy as np

import pandas as pd
import numpy as np
data = {'Name':['Tom', 'nick', '-', 'jack'],
        'Age':['20', '0', '19', ''],
       'color':['yellow','Na','blue','red']}

df = pd.DataFrame(data)


def missing_values(x):
    
    missingness_indicators = ["NaN","NAN","NA","Na","n/a", "na", "--","-"," ", "-inf", "inf", "nan", "None", "0", "", np.nan] 
    
    modified_df = df.replace(missingness_indicators,'NaN')

    modified_df["color"] = modified_df.loc[:,'color'].fillna(method='bfill', axis=0) #LOCF
    
    return modified_df

但是使用基于已识别缺失值的 pandas 函数不起作用,我认为这是因为我没有导入具有指定值的数据框(因为这会导致其他问题,我处理比示例更大的数据集) 我现在正在寻找一种在此数据集上应用像 .fillna 这样的 pandas 函数的方法。

【问题讨论】:

  • 如果您正在读取文件,您可以使用na_values 参数来定义您的自定义 NaN 值
  • 我知道这一点,但我在工作中的输入已经是 pandas 数据框,所以我正在寻找不同的解决方案
  • 您可能要替换为字符串 'NaN',尝试使用 None(无引号)或 np.nan 代替

标签: python pandas


【解决方案1】:

使用 np.nan 替换“指标”:

modified_df = df.replace(missingness_indicators,'NaN')

modified_df = df.replace(missingness_indicators, np.nan) 

【讨论】:

    猜你喜欢
    • 2013-04-11
    • 1970-01-01
    • 2014-06-13
    • 1970-01-01
    • 1970-01-01
    • 2021-01-02
    相关资源
    最近更新 更多