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

时间:2019-07-10 04:21:45

标签: python pandas

我试图首先将列的数据类型更改为整数,然后将字符串更改为给定浮点数。我想从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 个答案:

答案 0 :(得分:1)

使用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

答案 1 :(得分:0)

如果某些字符串的前导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,否则替换将不起作用。