首页 文章

在pandas中,如何将一系列float或none转换为带整数的字符串

提问于
浏览
3

我坚持使用一个包含文档编号但已导入为float64值的pandas系列 . 有些人不见了 .

将系列转换为字符串会为每个数字添加“.0”或将数字更改为电子表示法 .

转换为整数会导致错误消息:ValueError:无法将NA转换为整数

例:

s = pd.Series([129944444999999922.0, 1001.0, 1119999999912.0, None])
s.astype('str')

版画

0       1.29944445e+17
1               1001.0
2    1.11999999991e+12
3                  nan
dtype: object

如何转换系列以将文档编号显示为数字,没有符号和nan值作为空字符串?

1 回答

  • 3

    使用 list comprehension

    s1 = pd.Series(['' if pd.isnull(x) else int(x) for x in s], index=s.index)
    
    print (s1.apply(type))
    0    <class 'int'>
    1    <class 'int'>
    2    <class 'int'>
    3    <class 'str'>
    dtype: object
    
    print (s1.tolist())
    [129944444999999920, 1001, 1119999999912, '']
    

相关问题