如何根据现有列值在 Python 中创建分类列?

How to Create Categorical Column in Python based on Existing Column value?

我是 python 的新手 有什么简单的方法可以根据 python 中的现有值创建分类值?

city lapse
a    0
b    1
a    1
a    0
b    0
b    1

我要创建的列是基于平均失效列的城市分类

city avg_lapse city_class
a    0.3       < .5
b    0.6       > .5

并根据该计算创建一个新列

city lapse city_class
a    0     < .5
b    1     > .5
a    1     < .5
a    0     < .5
b    0     > .5
b    1     > .5

目前,我正在将干净的数据导出到 csv,计算 excel 中的类别,然后将其上传到 python 环境,知道如何创建这个的自动化版本吗?

使用GroupBy.transform for repeat aggregate values, so possible create new column by numpy.where:

mean = df.groupby('city')['lapse'].transform('mean')
df['city_class'] = np.where(mean > 0.5, '> .5', '<= .5')
print (df)
  city  lapse  city_class
0    a      0       <= .5
1    b      1       >  .5
2    a      1       <= .5
3    a      0       <= .5
4    b      0       >  .5
5    b      1       >  .5