Типы данных не изменяются в Pandas DataFrame - PullRequest
0 голосов
/ 08 июня 2018

Я пытаюсь преобразовать определенные столбцы в моем DataFrame в dtype: float.Я попробовал это:

grid[['DISTINCT_COUNT','MAX_COL_LENGTH', 'MIN_COL_LENGTH', 'NULL_COUNT' ]].apply(pd.to_numeric, errors='ignore')

Но когда я распечатываю это потом:

print(grid.dtypes)

Я все еще вижу это:

COLUMN_NM         object
DISTINCT_COUNT    object
NULL_COUNT        object
MAX_COL_VALUE     object
MIN_COL_VALUE     object
MAX_COL_LENGTH    object
MIN_COL_LENGTH    object
TABLE_CNT         object
TABLE_NM          object
DATA_SOURCE       object
dtype: object

Есть идеи?

1 Ответ

0 голосов
/ 08 июня 2018

Использование apply() не изменяет DataFrame на месте.Вы должны назначить вывод операции обратно исходному кадру данных.

@ ответ coldspeed здесь объясняет, что здесь происходит:

Все эти нарезки /Операции индексирования создают представления / копии исходного кадра данных, и вы затем присваиваете df этим представлениям / копиям, что означает, что к оригиналам вообще не прикасаются.

В вашем случае вам необходимо выполнить:

columns = ['DISTINCT_COUNT','MAX_COL_LENGTH', 'MIN_COL_LENGTH', 'NULL_COUNT']
grid[columns] = grid[columns].apply(pd.to_numeric, errors='ignore')

Или вы также можете сделать:

grid[columns] = pd.to_numeric(grid[columns], errors='ignore')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...