我很难创建一个新的列,其值是基于同一数据框中现有列的值。现有的列是数字的,我尝试给新列一个高、中、低的分类值。
低:中:(最大最小值)/3-(最大最小值)/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']是浮动的?

最佳答案

听起来你想重新创建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

关于python - 基于现有列中变量的值的Pandas数据框中的新列,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30596167/

10-13 09:15