Pandas – создать объект dtype столбца или фактор

В pandas, как я могу преобразовать столбец DataFrame в объект dtype? Или еще лучше, в какой-то фактор? (Для тех, кто говорит R, в Python, как мне as.factor() ?)

Кроме того, в чем разница между pandas.Factor и pandas.Categorical ?

3 Solutions collect form web for “Pandas – создать объект dtype столбца или фактор”

Вы можете использовать метод astype для создания серии (один столбец):

 df['col_name'] = df['col_name'].astype(object) 

Или весь DataFrame:

 df = df.astype(object) 

Обновить

Начиная с версии 0.15, вы можете использовать тип данных категории в столбце Series /:

 df['col_name'] = df['col_name'].astype('category') 

Примечание: pd.Factor был устаревшим и был удален в пользу pd.Categorical .

Насколько я знаю, Factor и Categorical одинаковы. Я думаю, что изначально он назывался Factor, а затем был изменен на категориальный. Чтобы преобразовать в Категорический, возможно, вы можете использовать pandas.Categorical.from_array , что-то вроде этого:

 In [27]: df = pd.DataFrame({'a' : [1, 2, 3, 4, 5], 'b' : ['yes', 'no', 'yes', 'no', 'absent']}) In [28]: df Out[28]: ab 0 1 yes 1 2 no 2 3 yes 3 4 no 4 5 absent In [29]: df['c'] = pd.Categorical.from_array(df.b).labels In [30]: df Out[30]: abc 0 1 yes 2 1 2 no 1 2 3 yes 2 3 4 no 1 4 5 absent 0 

Также используется функция pd.factorize:

 # use the df data from @herrfz In [150]: pd.factorize(df.b) Out[150]: (array([0, 1, 0, 1, 2]), array(['yes', 'no', 'absent'], dtype=object)) In [152]: df['c'] = pd.factorize(df.b)[0] In [153]: df Out[153]: abc 0 1 yes 0 1 2 no 1 2 3 yes 0 3 4 no 1 4 5 absent 2 
  • Преобразование pandas DataFrame в вложенный dict
  • Seaborn, показывающий научную нотацию в тепловой карте для трехзначных чисел
  • Сгладить / ravel / collapse 3-мерный xr.DataArray (Xarray) в 2 измерения вдоль оси?
  • групповой мультииндекс pandas dataframe
  • Экстраполировать значения в Pandas DataFrame
  • Как скопировать / вставить DataFrame из StackOverflow в Python
  • HDF5 занимает больше места, чем CSV?
  • Запись фрейма данных pandas в таблицу документов Word через pywin32
  •  
    Interesting Posts for Van-Lav

    Ctypes Structures и POINTERS автоматически освобождают память при удалении объекта Python?

    Heroku: ImportError: нет модуля с именем сайта

    python numpy и эффективность памяти (перейдите по ссылке и стоимости)

    Как я могу создавать новые оболочки для запуска скриптов python из базового сценария python?

    Python os.walk + следовать символическим ссылкам

    Программа Numpy C ++ всегда дает segfault (скорее всего, неправильное использование синтаксиса или типов)

    Virtualenv нет модуля с именем zlib

    Можно ли запустить еще одного паука из Scrapy spider?

    Несанкционированное взаимодействие с API календаря Google v3

    Устройство urllib2, которое не соответствует кодировке

    Является ли форматировщик строк, который тянет переменные из его вызывающей области плохой практики?

    Каковы хорошие способы сделать первый код Python первым?

    Измените IntegerProperty на FloatProperty существующего AppEngine DataStore

    Сделайте число, более вероятное, результатом случайного

    Распаковка списка / кортежей пар на два списка / кортежей

    Python - лучший язык программирования в мире.