python - 在 Pandas 中,如何将一系列 float 或无整数转换为带整数的字符串

标签 python python-3.x pandas type-conversion

我遇到了一个包含文档编号但已作为 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

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

最佳答案

使用列表理解:

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

关于python - 在 Pandas 中,如何将一系列 float 或无整数转换为带整数的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52096394/

相关文章:

java - 为 Android 平台评估 Java 脚本(例如 Python)

python - 用户未定义待办事项列表 django 教程

python-3.x - 我收到 ALB Lambda 错误 - 502 Bad Gateway

python - 通过迭代给定数据返回字典列表

python pandas 抛出解析错误

python - Matplotlib 填充缺失的 Tic 标签

python - 如何根据 pandas 中出现次数最多的组合填写值?

python - 异步和 rabbitmq (asynqp) : how to consume from multiple queues concurrently

python正则表达式,删除除撇号外的转义字符和标点符号

python - 从 tiddlywiki 列表传递到 python 列表