Я пытаюсь преобразовать определенный столбец фрейма данных df
в категориальный тип данных! или то, что R Programming называет factor
.
import pandas as pd
import numpy as np
df = pd.DataFrame(data=np.array([[1,1,2,2,3,3]]))
df = df.T
df[0].describe()
урожаи
count 6.000000
mean 2.000000
std 0.894427
min 1.000000
25% 1.250000
50% 2.000000
75% 2.750000
max 3.000000
Name: 0, dtype: float64
После того, как я конвертирую в «категорию»
df[0] = df[0].astype('category')
df[0].describe()
урожаи
count 6
unique 3
top 3
freq 2
Name: 0, dtype: int64
Ожидаемый результат: после преобразования типа данных столбца в категорию с помощью правильного кода (который я пытаюсь понять) я хочу, чтобы df[0].describe()
отображало что-то вроде
dtype: category
Categories (3, object): [1, 2, 3]
Кажется, я знаю, где я ошибаюсь. Я чувствую, что мне нужно явно указать разные категории или разные уровни при преобразовании в категориальный тип данных. Было бы здорово, если бы вы могли указать мне правильное направление, делая это.
Может ли каждый столбец, имеющий тип данных object
, считаться типом данных category
? Было бы полезно, если бы вы могли выделить некоторые основные различия между типом данных «объект» и «категория».
Кроме того, я понимаю, что при внедрении горячего кодирования для машинного обучения оно используется для преобразования категориальных функций в числовые, чтобы вы могли подключить их к научному обучению. Итак (в более формальном смысле) означает ли это, что горячее кодирование поможет преобразовать тип данных object
или category
в тип данных int64
?
ВОПРОС РЕШЕН из комментариев: существует разница между вводом df[0] и df[0].describe(), простая печать df[0]
отображает тип данных как category
, а df[0].describe()
показывает его как int64.
df[0]
и прокрутите вниз, вы увидите то, что вам нужно - person BENY   schedule 23.10.2017object
является своего рода типом данных, в котором столбец может иметь смесь типов данныхstring
илиint
. Опубликуйте это в ответах, чтобы я мог решить это .. - person   schedule 23.10.2017