Python 对给定组标签中的数据进行分类

Python 对给定组标签中的数据进行分类,python,pandas,Python,Pandas,嗨,伙计们,这个问题在这里已经被回答了很多次了,我只是想在我做错的事情上得到帮助。我有一个很大的数据集,我确实喜欢将一个重量以千克为单位的列分类到给定的标签中。以下是我的数据集的外观: 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 = ['bir

嗨,伙计们,这个问题在这里已经被回答了很多次了,我只是想在我做错的事情上得到帮助。我有一个很大的数据集,我确实喜欢将一个重量以千克为单位的列分类到给定的标签中。以下是我的数据集的外观:

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'])

这一行代码不起作用,请提供任何帮助,我必须在给定的标签中进行分类。

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

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]
导入数学
pd.cut(datt['birth_wt',bins=[-math.inf,1,1.5,2.5,4,math.inf],包括最低=True,标签=['1kg及以下','1kg-1.5kg','1.5kg-2.5','2.5kg-3.9kg','4kg及以上')
0.1kg及以下
1.2.5kg-3.9kg
2.1.5kg-2.5 kg
3.2.5kg-3.9kg
4公斤及以上
5 1kg-1.5kg
6 1kg-1.5kg
7 1kg及以下
8.1.5kg-2.5 kg
9.2.5kg-3.9kg
10 2.5kg-3.9kg
11 1kg-1.5kg
姓名:出生,数据类型:类别
类别(5,对象):[1kg及以下<1kg-1.5kg<1.5kg-2.5<2.5kg-3.9kg<4kg及以上]

我是否可以单独列一列categories@LivingstoneM您可以将其指定为一列:datt['category']=pd.cut(…)非常感谢much@LivingstoneM不客气:)