首页 > 解决方案 > 对给定组标签中的数据进行分类

问题描述

嗨,伙计们,这个问题已经在这里得到了多次回答,我确实想就我做错的事情寻求帮助。我有一个大型数据集,我确实想将一列重量以千克为单位的列分类到给定的标签中。这是我的数据集的样子:

import pandas as pd

raw_data = { 'birth_wt': [0.1, 3, 2.4, 3, 4.2, 1.3, 1.45, 0.45, 1.64, 3.011, 3.45, 1.4]}


datt = pd.DataFrame(raw_data, columns = ['birth_wt'])

这是我尝试过的不起作用的代码

#Categorize birth weight 
pd.cut(datt['birth_wt'], bins=[1,1.5,2.5,4], include_lowest=True,labels=['1kg and below','1kg-1.5kg', '1.5kg-2.5','2.5kg-3.9kg', '4kg and above'])

这行代码不起作用,任何帮助将不胜感激,我必须在给定的标签中进行分类。

标签: pythonpandas

解决方案


您需要在 bin 中指定下限和上限。一种快速的方法是使用-infandinf作为下限和上限:

import math
pd.cut(datt['birth_wt'], bins=[-math.inf, 1,1.5,2.5,4, math.inf], include_lowest=True,labels=['1kg and below','1kg-1.5kg', '1.5kg-2.5','2.5kg-3.9kg', '4kg and above'])

0     1kg and below
1       2.5kg-3.9kg
2         1.5kg-2.5
3       2.5kg-3.9kg
4     4kg and above
5         1kg-1.5kg
6         1kg-1.5kg
7     1kg and below
8         1.5kg-2.5
9       2.5kg-3.9kg
10      2.5kg-3.9kg
11        1kg-1.5kg
Name: birth_wt, dtype: category
Categories (5, object): [1kg and below < 1kg-1.5kg < 1.5kg-2.5 < 2.5kg-3.9kg < 4kg and above]

推荐阅读