Pandas.cut()对分类值的影响

问题描述 投票:0回答:1

这是我的数据框架

df = pd.DataFrame(['A+', 'A', 'A-', 'B+', 'B', 'B-', 'C+', 'C', 'C-', 'D+', 'D'],
                  index=['excellent', 'excellent', 'excellent', 'good', 'good', 'good', 'ok', 'ok' , 
                         'ok', 'poor', 'poor'])
df.rename(columns={0: 'Grades'}, inplace=True)
df= df.iloc[::-1]
dataframe.Grades = pd.Categorical(dataframe.Grades, 
               categories = list(dataframe.Grades),
               ordered = True)

但是我想用pd.cut把数值分成两个部分。

pd.cut(df.Grades, 2, labels=['Good', 'Bad'])

但它返回一个错误,说

只能将str(而不是 "float")连接到str。

我错在哪里?谢谢你了

python pandas dataframe
1个回答
0
投票

Pandas cut不是正确的工具。它将一个连续变量转化为一个分层变量。例如:

values = pd.Series([0,1,2,3,4,5,6]
binned = pd.cut(values, bins=3)

binned
>>>  0  (-0.006, 2.0]
     1  (-0.006, 2.0]
     2  (-0.006, 2.0]
     3  (2.0, 4.0]
     4  (2.0, 4.0]
     5  (4.0, 6.0]
     6  (4.0, 6.0]

正如你所看到的,它确定了二进制(3个二进制,2个单位,涵盖0-6的范围),并通过分配相应的二进制将连续的值转换为分类。

如果你想得到进一步的帮助,请编辑你的问题,给出你的输入和期望的输出,这样我们就可以了解你想达到的目的。

© www.soinside.com 2019 - 2024. All rights reserved.