Pandas数据框中的新列基于现有列中的变量值

时间:2015-06-02 12:31:18

标签: python pandas

我在创建新列时遇到困难,该列的值基于同一数据帧中现有列的值。现有列是数字的,我正在尝试根据以下内容为新列提供高,中,低的分类值:

低:< (最大值 - 最小值)/ 3

med:(max-min)/ 3 - (max-min)/ 3 * 2

高:> (最大 - 分钟)/ 3 * 2

还在学习熊猫,所以任何帮助都会受到赞赏。谢谢!

编辑:

这就是我的尝试:

df_unit_day_hour['Level_Score'] = pd.cut(df_unit_day_hour['Level_Score'], q=3, labels=['low', 'medium', 'high'])

我认为这几乎是我需要的,但我收到了一个错误(KeyError)。是因为df_unit_day_hour ['Level_Score']是浮点数?

1 个答案:

答案 0 :(得分:4)

听起来您想要重新创建Series.cut功能

请考虑以下示例:

import numpy as np
import pandas as pd

df = pd.DataFrame({'val':np.random.choice(10, 10)})
df['cat'] = pd.cut(df['val'], [-1,2,5,10], labels=['low', 'medium', 'high'])
    df

   val   cat
0    6  high
1    2   low
2    7  high
3    7  high
4    8  high
5    8  high
6    9  high
7    6  high
8    2   low
9    0   low