代码之家  ›  专栏  ›  技术社区  ›  576i

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

  •  3
  • 576i  · 技术社区  · 7 年前

    将序列转换为字符串会给每个数字添加一个“.0”,或更改

    转换为整数会导致错误消息:

    例子:

    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
    

    1 回复  |  直到 7 年前
        1
  •  3
  •   jezrael    7 年前

    使用 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, '']