【发布时间】:2014-04-23 10:31:57
【问题描述】:
我经常需要对一系列数字进行分类:
例如:
|Num| cat|
| 2 |low |
| 7 | med|
| 10|high|
我想要什么!我想构建两个函数。
功能1. - 接受3个参数: 参数1:数据框名称 参数 2:数据框中的列名 参数3:多个类别,例如我想要的(5)。
然后,此函数将根据我想要 5 个类别的事实计算出最大值、最小值和返回值范围:(1,2),(3,4),(5,6),(7,8 ),(9,10)。
我正在考虑类似 (max - min) / num 类别的东西,但它会以某种方式计算出这些范围。
然后函数 1 将返回范围 (1,2),(3,4),(5,6),(7,8),(9,10)。
函数 2.- 将接受 3 个参数: 参数1:数据框名称 参数 2:pandas 数据框中的列名(与函数 1 中的相同) 参数 3。您要在数据框中创建的新列的名称。 参数 4. 来自功能 1 的一组范围。 参数 5. 以及类别列表,['low','med','high'] 等
然后该函数将创建包含类别的新列。
【问题讨论】:
-
1.你的问题不清楚。你到底想做什么(你的数据结构需要支持哪些操作)? 2.你为什么不直接使用dict?
-
好吧
Def肯定行不通。 -
您是否只想唯一标识您的类别并只执行一次?如果您的类别可以增长并且含义可以改变,即您有动态扩展的类别,其中可能有超过 10 个类别可能被归类为低类别,那么您也必须重新分类,这会使其变慢
-
@EDCHUM 从这个意义上说,类别不会动态扩展。只是在某种意义上,如果我想对一列数字进行分类,我想我可能会经常这样做,那么为什么不为其创建一个函数呢?