如何根据现有列值在 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
我是 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