Невозможно изменить Dtype 'O' на str в кадре данных - PullRequest
0 голосов
/ 26 июня 2019

есть импорт из файла CSV большой порции данных, Pandas автоматически назначает столбцы dtype (138), есть один столбец, который я должен сравнить для получения результата извлечения.

Я попытался с astype() и apply() методом для изменения столбца без успеха.

Я попробовал с этим ниже:

In [78]: df['PDP_ADDIPV4_01']=df['PDP_ADDIPV4_01'].astype(str,errors='ignore')
         df['PDP_ADDIPV4_01'].dtype
Out[78]: dtype('O')

In [79]: df['PDP_ADDIPV4_01']=df['PDP_ADDIPV4_01'].astype('str',errors='ignore')
         df['PDP_ADDIPV4_01'].dtype
Out[79]: dtype('O')


In [49]: df['PDP_ADDIPV4_01'].dtype
Out[49]: dtype('O')

In [50]: df['PDP_ADDIPV4_01']=df['PDP_ADDIPV4_01'].astype(int,errors='ignore')
         df['PDP_ADDIPV4_01'].dtype
Out[50]: dtype('O')

In [51]: 
     df['PDP_ADDIPV4_01']=df['PDP_ADDIPV4_01'].astype('int',errors='ignore')
     df['PDP_ADDIPV4_01'].dtype
Out[51]: dtype('O')

Не отображает никаких ошибок, но также не меняет dtype в столбце. не изменяется для целого числа или строки.

1 Ответ

1 голос
/ 26 июня 2019

Если возможно использование панд 0.24+, можно преобразовать нечисловые в пропущенные значения to_numeric, а затем в целые числа Тип данных целых чисел Nullable Если необходимо преобразовать столбцы в целые числа:

df['PDP_ADDIPV4_01']= pd.to_numeric(df['PDP_ADDIPV4_01'],errors='coerce').astype('Int64')

Но если вам нужны строки, если dtype равен object, то это, очевидно, означает strings . Таким образом, преобразование не требуется.

...