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

标签 python pandas

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

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

中间:(最大-最小)/3 - (最大-最小)/3 *2

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

仍在学习 Pandas,因此非常感谢您的帮助。谢谢!

编辑:

这是我尝试过的:

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'] 是一个 float ?

最佳答案

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

相关文章:

python - numpy Mean函数的参数 'a'如何工作?

重复直到返回值不为 None 的 Pythonic 方式

python - 如何根据连续索引拆分 DataFrame?

Pandas 在尾随的 n 个元素上滚动 cumsum

python - matplotlib:如何刷新 figure.canvas

python - 如何计算numpy中的连续数字

python - Anaconda:上传到全局 channel

python - 将相同键的行组合成单个数组

python - 使用 Pandas 读取 JSON 时出现“预期的字符串或 Unicode”

python - 如何在 Pandas 中找到重复项?