【问题标题】:How fill NA/Null for categorical Varibles in python using fillna() function如何使用 fillna() 函数在 python 中为分类变量填充 NA/Null
【发布时间】:2018-08-09 14:19:35
【问题描述】:

我有一个数据集,其中包含一些分类变量,但它们有一些缺失(NA/Null)。我想用该列的模式填充这些 NA/Null。 我厌倦了关注这件事,但这没有用

MD=Data['Gender'].mode()
Data['Gender'].fillna(value=MD,inplace=True)


MD=Data['Married'].mode()
Data['Married'].fillna(value=MD,inplace=True)

MD=Data['Dependents'].mode()
Data['Dependents'].fillna(value=MD,inplace=True)

MD=Data['Self_Employed'].mode()
Data['Self_Employed'].fillna(value=MD,inplace=True)

MD=Data['Credit_History'].mode()
Data['Credit_History'].fillna(value=MD,inplace=True)

Gender                26
Married                6
Dependents            30
Education              0
Self_Employed         64
ApplicantIncome        0
CoapplicantIncome      0
LoanAmount             0
Loan_Amount_Term       0
Credit_History       100
Property_Area          0
Loan_Status            0

仍然显示缺失值。

【问题讨论】:

    标签: python pandas numpy machine-learning


    【解决方案1】:

    试试这个:

    Data['Married'].fillna(Data['Married'].mode(), inplace=True)
    

    或者试试这个:

    Data['Married'].fillna(Data['Married'].value_counts().index[0], inplace=True)
    

    确保分类变量的 dtype 是对象或类别。

    【讨论】:

    • 这确实有效。执行此代码后,NA 值仍然存在。并且数据类型也是对象。
    • 我试过的一件事,当你直接传递值时我可以工作,但是当传递变量时不起作用。 Data['Gender'].fillna(value='Male',inplace=True)
    • @HardCoder 它对我有用。没关系,添加了另一种方法。它应该可以工作。
    • Data['Married'].fillna(Data['Married'].value_counts().index[0], inplace=True) 这行得通。谢谢 Manish Saraswat
    【解决方案2】:

    试试这个:

    Data['Married'].fillna(Data['Married'].mode()[0], inplace=True)
    

    【讨论】:

      猜你喜欢
      • 2018-01-16
      • 1970-01-01
      • 1970-01-01
      • 2012-08-11
      • 2022-01-19
      • 1970-01-01
      • 1970-01-01
      • 2019-06-24
      • 2019-05-12
      相关资源
      最近更新 更多