【问题标题】:Some Null values after applying pandas cut function to age variable(column)将 pandas cut 函数应用于年龄变量(列)后的一些 Null 值
【发布时间】:2020-06-30 02:55:56
【问题描述】:

所以我希望将定量变量(年龄)转换为分类变量(年龄组)。 但问题是在应用 pandas.cut 之后,agegrp 列有一些为空的行。

这里的“da”是一个数据框:

da['agegrp'] = pd.cut(da['age'] , [18,30,40,50,60,70,80])

我的数据集中年龄最小的是 18 岁,最大的是 80 岁;所以我希望 agegrp 列中的任何行都不应该为空。

我应用了以下内容以确保 'agegrp' 中没有空值:

pd.isnull(da['agegrp']).value_counts()

得到了这个

False    5602
True      133

为什么即使传递给 cut 的 bin 覆盖了所有可能的年龄值,但仍有一些行为空?

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    由于年龄应该int,而pd.cut可以通过right等于TrueFalse,这意味着他们只能在左侧或右侧保留一个关闭的bin,以使其工作我们可以做

    da['agegrp'] = pd.cut(da['age'] , [17.9,30,40,50,60,70,80.1])
    

    【讨论】:

    • 它完全有效,谢谢!但是你能解释一下为什么这更有效的原因吗?我不太明白原因
    • NVM,我完全明白你现在在说什么。第一个范围是 (18,30],最后一个是 [70,80)。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2020-05-27
    • 2022-11-23
    • 2016-12-30
    • 1970-01-01
    • 2020-03-10
    • 2018-10-29
    • 2020-10-08
    • 1970-01-01
    相关资源
    最近更新 更多