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

将列转换为不带科学符号的字符串

阎辰钊
2023-03-14

很多问题都解决了这个问题,但没有一个解决方案能完全满足我的需要。

我有一个数据框,有两列数字,每列10-20位。这些实际上是ID,我想将它们连接起来。看起来最好先将值转换为字符串。

然而,当使用. astype(str)转换时,熊猫保留了科学符号,这是不会飞的。

我尝试过的事情:

尝试:dtype arg('str')或转换器(使用str())在read_csv()

结果:df。数据类型仍然列出“对象”,值仍然显示在sci中。符号

已尝试:pd。设置选项('display.float_format',lambda x:'%0.f'%x)

结果:在df中显示良好。head(),但在强制转换为字符串时恢复为科学符号

尝试:强制执行int,str或str(int(x))
结果:当我使用int()强制执行一个值时,int工作,但当我使用astype(int)时不工作。>withint()抛出一个以10为基数的无效文字long()错误。

这感觉应该很简单,急于找出我错过了什么。


共有1个答案

莫骞仕
2023-03-14

您尝试的设置了显示格式。您可以在数据帧中将浮点数格式化为字符串。

import numpy as np
import pandas as pd

import numpy as np

作为pd进口熊猫

df=pd.DataFrame(data={'a':np.random.randint(low=1,high=100,size=10)*1e20,'b':np.random.randint(low=1,high=100,size=10)*1e20})
df.apply(lambda x: '{0:20.0f}|{1:20.0f}'.format(x.a,x.b),axis=1)



Out[34]:
0    9699999999999998951424|4600000000000000000000
1     300000000000000000000|2800000000000000000000
2    9400000000000000000000|9000000000000000000000
3    2100000000000000000000|4500000000000000000000
4    5900000000000000000000|4800000000000000000000
5    7700000000000000000000|6200000000000000000000
6    1600000000000000000000|8000000000000000000000
7      100000000000000000000|400000000000000000000
8    9699999999999998951424|8000000000000000000000
9    4500000000000000000000|3500000000000000000000
 类似资料:
  • 在我的例子中,其中一个xml标记值是"09031454866678e6"。而在中转换为json对象e被认为是科学符号,并转换为“9.031454866678E6”。 我应该如何避免这种转换并确保它被解析为字符串而不是数字? 在代码中: 其中resp是xml字符串。 设置值时失败 setobject方法如下所示 项目中使用的maven依赖项是 我期望输出与原始值“09031454866678e6”相

  • 如何将日期字段从科学符号转换为freemarker中的数字,然后根据该日期字段的值进行sort_by? 如果我能从Freemarker文档注释中获得一些指针或任何特定的参考,我将很高兴。

  • 问题内容: 如何将字符串转换为JavaScript数组? 看一下代码: 在这种情况下,将弹出一个。当它是一个数组时,它会弹出一个,而当它被调用时,它应该弹出一个。 是否有机会将此类字符串转换为JavaScript数组? 问题答案: 对于像这样的简单数组成员,可以使用。 这为您提供了一个数字数组。 如果使用,则会得到一个字符串数组。 请注意,这将限制您使用受支持的数据类型。如果您需要类似或函数的值,

  • 问题内容: 我有一个电话号码(字符串),例如“ + 123-456-7890”,我想将其变成一个列表,如下所示:[+,1,2,3,-,....,0]。 为什么?因此,我可以遍历列表并删除所有符号,因此只剩下一个数字列表,然后可以将其转换回字符串。 解决此问题的最佳方法是什么?我遇到的所有解决方案均不适用,因为在数字之间没有任何特殊字符(因此我无法在其中分割字符串。) 有任何想法吗?我真的很感激!

  • 我使用python从API中提取数据,并将其存储在数据帧中。我以CSV格式导出数据框,当我使用excel打开它时,一些列(有非常大的数字)会转换为科学符号,我不希望这样。我希望数字保持整数格式。 我尝试在to_csv命令中使用浮点格式选项,但也没有帮助。 这是我的导出命令: 注意:数字在数据框中以整数格式显示。此外,当使用记事本打开csv文件时,数据将以正确的格式显示。 电流输出: 期望输出: