如何利用pandas将定量数据转换成分类数据

如何利用pandas将定量数据转换成分类数据,pandas,Pandas,我正在处理一个数据集,它由带有数字/int数据的列组成。它主要由-1、0组成,然后是10和1000之间的零值。我想用标签替换coulmn内容 pd.qcut(df['TS1'].rank(method='first'),3,labels=["low","mid","high"],duplicates='drop') 该命令仅转换一列,我不知道如何对整个数据集进行分类。因此,我创建了一个数据框,其中包含与您的数据集相似的数据: df = pd.DataFrame(np.random.rand(5

我正在处理一个数据集,它由带有数字/int数据的列组成。它主要由-1、0组成,然后是10和1000之间的零值。我想用标签替换coulmn内容

pd.qcut(df['TS1'].rank(method='first'),3,labels=["low","mid","high"],duplicates='drop')

该命令仅转换一列,我不知道如何对整个数据集进行分类。

因此,我创建了一个数据框,其中包含与您的数据集相似的数据:

df = pd.DataFrame(np.random.rand(5, 3)) * 1000
df.iloc[0:3, 2] = 0
df.iloc[[1, 3], :] = -1
print(df)
输出:

        0           1         2
0  679.473489  844.456345    0.0000
1   -1.000000   -1.000000   -1.0000
2  125.684455  696.829219    0.0000
3   -1.000000   -1.000000   -1.0000
4   97.520572  869.919917  528.5606
  0     1     2
0  high  high   mid
1   low   low   low
2  high   mid   mid
3   low   low   low
4   mid  high  high
为类别创建数据框,然后在列上循环以获取每列的qcut:

cat_df = pd.DataFrame(index=df.index, columns=df.columns)

for column in df.columns:
    cat_df[column] = pd.qcut(df.loc[:,column],3,labels=["low","mid","high"],duplicates='drop')

print(cat_df)
输出:

        0           1         2
0  679.473489  844.456345    0.0000
1   -1.000000   -1.000000   -1.0000
2  125.684455  696.829219    0.0000
3   -1.000000   -1.000000   -1.0000
4   97.520572  869.919917  528.5606
  0     1     2
0  high  high   mid
1   low   low   low
2  high   mid   mid
3   low   low   low
4   mid  high  high
然后是箱线图:

df.boxplot()
plt.show()

在所有列上循环执行此操作?好的,明白了…我还可以在此使用boxplot吗?
df.boxplot(by='IDLink',column=['TS1',grid=True)
使用此操作会导致错误。