当前位置: 首页 > 知识库问答 >
问题:

在pandas中将长整数转换为字符串(以避免使用科学符号)

刁丰羽
2023-03-14

我希望以下记录(当前显示为3.200000e 18,但实际上(希望)每个不同的长整数),使用pd.read_excel()创建,以不同的方式解释:

ipdb> self.after['class_parent_ref']
class_id
3200000000000515954    3.200000e+18
3200000000000515951             NaN
3200000000000515952             NaN
3200000000000515953             NaN
3200000000000515955    3.200000e+18
3200000000000515956    3.200000e+18
Name: class_parent_ref, dtype: float64

目前,它们似乎以科学符号字符串的形式出现:

ipdb> self.after['class_parent_ref'].iloc[0]
3.2000000000005161e+18

然而,更糟糕的是,我不清楚这个数字是否已从我的. xlsx文件中正确读取:

ipdb> self.after['class_parent_ref'].iloc[0] -3.2e+18
516096.0

Excel(数据源)中的数字为320000000515952。

这与显示无关,我知道我可以在这里更改。这是关于保持底层数据在读取时的相同形式(这样如果/当我把它写回Excel时,它看起来就会一样,这样如果我使用数据,它看起来就像在Excel而不是Xe Y中一样)。如果我能指望它是正确数字的字符串表示,我肯定会接受一个字符串。

您可能会注意到,我想看到的数字实际上(顺便说一句)是其中一个标签。Pandas正确地将这些作为字符串读取(可能是因为Excel将它们视为字符串?)与我输入的数字不同。(实际上,即使我在重读之前将=“32000000000000515952”输入到所讨论的单元格中,我也会得到上述相同的结果。)

如何从数据帧中取出32000000000000515952?我想知道熊猫是否有长整数的限制,但我唯一发现的是1)有点过时,2)看起来与我面临的情况不同。

非常感谢。

共有1个答案

蓟浩旷
2023-03-14

使用NaN将列值转换为0,然后将该列转换为整数。

df[['class_parent_ref']] = df[['class_parent_ref']].fillna(value = 0)
df['class_parent_ref'] = df['class_parent_ref'].astype(int)

或者在读取文件时,为pd指定keep\u default\u na=False。对于pd,读取\u excel()和na\u filter=False。read\u csv()

 类似资料:
  • 问题内容: 我有一个使用long作为ID的定制类。但是,当我使用ajax调用操作时,我的ID被截断并且丢失了最后2个数字,因为javascript处理大数字时会失去精度。我的解决方案是给我的JavaScript字符串,但是ID必须在服务器端保留很长时间。 有没有一种方法可以将属性序列化为字符串?我在寻找某种属性。 控制者 模型 JSON结果 问题答案: 您可能可以创建一个自定义并将其应用于您的媒体

  • 问题内容: 有没有一种方法可以将整数转换为PHP中的字符串? 问题答案: 您可以使用该函数将数字转换为字符串。 从维护的角度来看,它显然是您正在尝试做的事情,而不是其他一些更深奥的答案。当然,这取决于您的上下文。

  • 我想有一个JPQL查询,它可能看起来像: 其中a.num是一个整数。我想将此转换为字符串以使用类似的条件。然而,上述转换在JPQL中不起作用。我该如何实现这一点?

  • 很多问题都解决了这个问题,但没有一个解决方案能完全满足我的需要。 我有一个数据框,有两列数字,每列10-20位。这些实际上是ID,我想将它们连接起来。看起来最好先将值转换为字符串。 然而,当使用转换时,熊猫保留了科学符号,这是不会飞的。 我尝试过的事情: 尝试:dtype arg('str')或转换器(使用)在 结果:

  • 问题内容: 如何在JavaScript中将字符串转换为整数? 问题答案: 最简单的方法是使用本机函数: 如果这对您不起作用,则有 parseInt , 一元加号 , 带有floor的parseFloat 和 Math.round 方法。 parseInt: 一元加号,如果您的字符串已经是整数形式: 如果您的字符串是浮点数或可能是浮点数,并且您想要一个整数: 或者,如果您要多次使用Math.floo