Обновление типа данных столбца из цикла for - PullRequest
0 голосов
/ 10 июля 2019

Я пытаюсь сначала изменить тип данных столбца на целое, затем на строку, учитывая, что это число с плавающей точкой.Я хотел бы обновить тип данных столбца из цикла while.

Столбец содержит смесь строковых и плавающих типов данных.

if data_type == str:
            column = column.fillna('') # empty string for NaN values
            index = 0
            for i in column:
                if column == float:
                    column[i] = int(column[i]) 


            return column.astype(str)

Ответы [ 2 ]

1 голос
/ 10 июля 2019

Использование pandas.to_numeric:

import pandas as pd

s = pd.Series(['12385', 85020.0, '28593'])
s = pd.to_numeric(s, downcast='integer').astype(str)

Выход s:

0    12385
1    85020
2    28593
dtype: object
0 голосов
/ 10 июля 2019

Если у некоторых строк есть начальные 0, которые нужно сохранить, удалите последние .0

s = pd.Series(['12385', 85020.0, '28593', '000123'])
s.astype(str).str.replace('\.0$', '')

0     12385
1     85020
2     28593
3    000123
Name: col, dtype: object

Предполагается, что значения с плавающей запятой меньше 1e + 16, иначе замена не будет работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...