pandas将数字变量重新编码为分类变量

时间:2015-10-05 03:49:41

标签: python pandas

我是新手使用熊猫并且有一个非常基本的问题。

将数字变量重新编码为分类变量的最佳方法是什么?

例如,我有一个数字变量x,范围从1-1000。我想创建一个包含五个类别的新分类变量。我尝试了以下但是看起来很多打字(特别是如果我想创建10-20个类别)。是否有一些标准或优化的方法来实现相同的目标?

df_all['x_group'] = '0 pound'

df_all['x_group'][(df_all['x'] <=149)] = '0-1 pounds'

df_all['x_group'][(df_all['x'] >149) & (df_all['x'] <=249)] = '2 pounds'

df_all['x_group'][(df_all['x'] >249) & (df_all['x'] <=349)] = '3 pounds'

df_all['x_group'][(df_all['x'] >349) & (df_all['x'] <=449)] = '4 pounds'

df_all['x_group'][(df_all['x'] >449)] = '5 pounds'

2 个答案:

答案 0 :(得分:0)

您可以将逻辑编写为函数,然后使用applymap()将函数应用于数据框。此外,请注意'0磅'应该读作'0磅'。

答案 1 :(得分:0)

实际上我发现我可以使用pd.cut将它们放入垃圾箱。键入的次数要少得多。