【问题标题】:Python 3 - Pandas - Missing Data and Binning ValuesPython 3 - Pandas - 缺失数据和分箱值
【发布时间】:2020-08-03 15:15:05
【问题描述】:

我有以下代码,它从 CSV 文件中提取数据,我想对数据集中的一个变量执行一些分析。该变量是一种对象数据类型,它有很多缺失值。因此,我使用 pd.to_numeric 将它们转换为 NaN。然后我创建了一些 bin (1,2,3,4,5) 来对变量的值进行分类。但是,我想将 NaN 作为类别或 bin 包含在新变量 ("variable_q") 中。例如作为“无数据”类别。那可能吗?我该怎么做?我错过了什么>

import pandas as pd
import numpy as np

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

data["variable"]=pd.to_numeric(data["variable"],errors="coerce")

data["variable_q"]=pd.cut(x=data["variable"],bins=[1,2,3,4,5],labels=["Low","Moderate","High","Extremely High"])

非常感谢!

【问题讨论】:

  • data["variable_q"] = data["variable_q"].fillna('No Data') 剪辑后?
  • 我收到以下错误... ValueError: fill value must be in categories
  • data["variable_q"] = np.where(data["variable_q"].isna(), 'No Data', data["variable_q"].astype(str).
  • data["variable_q"] = np.where(data["variable_q"].isna(), 'No Data', data["variable_q"].astype(str)) ValueError: fill值必须在类别中

标签: python-3.x pandas missing-data binning


【解决方案1】:

好吧,我正在对变量进行频率分布,我刚刚意识到在下面的代码中添加 dropna=False 作为参数可以解决问题。

已经创建了一个NaN类别!所以上面的代码中不需要添加“No Data”类别。

数据["variable_q"].value_counts(sort=False,dropna=False)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-04-06
    • 1970-01-01
    • 1970-01-01
    • 2023-03-11
    • 2021-03-21
    • 1970-01-01
    • 2013-04-27
    相关资源
    最近更新 更多