Я могу преобразовать все текстовые функции в кадр данных pandas путем кастинга в категорию с помощью метода df.astype(), как показано ниже. Однако я считаю категории трудно работать (например, для построения данных) и предпочли бы, чтобы создать новый столбец целых чиселpandas преобразует текстовую функцию в числовое значение
#convert all objects to categories
object_types = dataset.select_dtypes(include=['O'])
for col in object_types:
dataset['{0}_category'.format(col)] = dataset[col].astype('category')
я могу преобразовать текст в целые числа с помощью этого хака:
#convert all objects to int values
object_types = dataset.select_dtypes(include=['O'])
new_cols = {}
for col in object_types:
data_set = set(dataset[col].tolist())
data_indexed = {}
for i, item in enumerate(data_set):
data_indexed[item] = i
new_list = []
for item in dataset[col].tolist():
new_list.append(data_indexed[item])
new_cols[col]=new_list
for key, val in new_cols.items():
dataset['{0}_int_value'.format(key)] = val
Но есть ли лучший (или существующий) способ сделать то же самое?
Я бы переключите свой ответ на ответ MaxU. Это более уместно. – piRSquared