Python 从for循环更新列的数据类型

Python 从for循环更新列的数据类型,python,pandas,Python,Pandas,我试图先将列的数据类型更改为整数,然后再更改为字符串,因为它是一个浮点数。我想在while循环中更新列的数据类型 该列混合了字符串和浮点数据类型 if data_type == str: column = column.fillna('') # empty string for NaN values index = 0 for i in column: if column == float:

我试图先将列的数据类型更改为整数,然后再更改为字符串,因为它是一个浮点数。我想在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)
使用:

s的输出:


如果某些字符串的前导0需要保留,请去掉最后一个。0


这假设您的浮点值小于1e+16,否则替换将不起作用

请提供数据帧和预期输出的示例原始列混合了字符串和浮点数,例如['12385020.0',28593']。预期的输出是,我想将所有内容转换为字符串,但需要先将浮点值更改为整数
import pandas as pd

s = pd.Series(['12385', 85020.0, '28593'])
s = pd.to_numeric(s, downcast='integer').astype(str)
0    12385
1    85020
2    28593
dtype: object
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