在 Python 中将数值数据转换为分类数据
Convert numerical data to categorical in Python
我有一个 pandas 数据框,其中 fert_Rate 列表示生育率。我想要一个新列,其中包含这些值作为分类值而不是数字值。我想要的不是 1.0、2.5、4.0(低、中、高)。在 R 中我会写这样的东西:
attach(mydata)
mydata$fertcat[fert_Rate > 3.5] <- "High"
mydata$fertcat[fert_Rate > 2 & fert_Rate <= 3.5] <- "Medium"
mydata$fertcat[fert_Rate <= 2] <- "Low"
detach(mydata)
在 python 中是否有类似的方法,或者我应该循环遍历该列来创建?
使用 pd.cut
对数据进行分类。
df = pd.DataFrame({'fert_Rate': [1, 2, 3, 3.5, 4, 5]})
>>> df.assign(fertility=pd.cut(df['fert_Rate'],
bins=[0, 2, 3.5, 999],
labels=['Low', 'Medium', 'High']))
fert_Rate fertility
0 1.0 Low
1 2.0 Low
2 3.0 Medium
3 3.5 Medium
4 4.0 High
5 5.0 High
我有一个 pandas 数据框,其中 fert_Rate 列表示生育率。我想要一个新列,其中包含这些值作为分类值而不是数字值。我想要的不是 1.0、2.5、4.0(低、中、高)。在 R 中我会写这样的东西:
attach(mydata)
mydata$fertcat[fert_Rate > 3.5] <- "High"
mydata$fertcat[fert_Rate > 2 & fert_Rate <= 3.5] <- "Medium"
mydata$fertcat[fert_Rate <= 2] <- "Low"
detach(mydata)
在 python 中是否有类似的方法,或者我应该循环遍历该列来创建?
使用 pd.cut
对数据进行分类。
df = pd.DataFrame({'fert_Rate': [1, 2, 3, 3.5, 4, 5]})
>>> df.assign(fertility=pd.cut(df['fert_Rate'],
bins=[0, 2, 3.5, 999],
labels=['Low', 'Medium', 'High']))
fert_Rate fertility
0 1.0 Low
1 2.0 Low
2 3.0 Medium
3 3.5 Medium
4 4.0 High
5 5.0 High