Как бороться, чтобы преобразовать количественные данные в категориальные данные, используя панд - PullRequest
0 голосов
/ 06 мая 2018

Я работаю над набором данных, который состоит из столбцов с числовыми / int данными. Он состоит в основном из -1, 0, а затем из пространственных значений в диапазоне от 10 до 1000. Я хочу заменить содержимое кулна на ярлыки ...

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

команда преобразует только один столбец, я не знаю, как классифицировать весь набор данных.

1 Ответ

0 голосов
/ 06 мая 2018

Итак, я создаю фрейм данных с данными, похожими на ваш набор данных:

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

Создайте фрейм данных для категорий, затем переберите столбцы, чтобы получить 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)

выход: * +1010 *

  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()

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...