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

Python 将列转换为不带科学符号的字符串,python,pandas,Python,Pandas,很多问题都解决了这个问题,但没有一个解决方案能完全满足我的需要 我有一个数据框,有两列数字,每列10-20位。这些实际上是ID,我想将它们连接起来。看起来最好先将值转换为字符串 然而,当使用.astype(str)转换时,熊猫保留了科学符号,它不会飞 我尝试过的事情: 已尝试:在read\u csv() 结果:df.dtypes仍然列出“对象”,值仍然显示在sci中。符号 已尝试:pd.set\u选项('display.float\u格式',lambda x:'%0.f'%x) 结果:在df.h

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

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

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

我尝试过的事情:

已尝试:在
read\u csv()

结果:
df.dtypes
仍然列出“对象”,值仍然显示在sci中。符号

已尝试:
pd.set\u选项('display.float\u格式',lambda x:'%0.f'%x)

结果:在
df.head()
中显示良好,但在强制使用字符串和使用+运算符连接时,恢复为科学表示法

已尝试:强制为int、str或
str(int(x))

结果:当我使用
int()
强制一个值时,int起作用,但当我使用
astype(int)
时,int不起作用。将
.apply()
int()
一起使用会引发“无效的文字长度(),以10为基数”错误


这感觉应该非常简单,急于找出我遗漏了什么。

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

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

谢谢,这是一个很好的简单解决方案。尽管如此,仍在研究这个问题,因为尝试实现这个解决方案实际上在我的数据中发现了一个错误,pandas将一些值解析为float。一旦我解决了这个问题,我想这就行了。是的,忘了点击“正确答案”。再次感谢!对于后代:我只需要编写一个apply()函数,将每一行转换为float64,然后使用您的技术进行连接。有些是不可强制转换的,因此函数丢弃了这些行。