将csv转换为csv,从一列中删除科学记数法

anhgbhbe  于 2023-02-17  发布在  其他
关注(0)|答案(1)|浏览(127)

我从一个有3列的系统导出CSV开始,第一列显示一个科学记数法的数字。我只需要将该列转换为数字并保存到另一个CSV。请注意,有数千行,使用Excel转换不是一个选项。
我发现了很多与此相近的文章,使用“float”,使用“round”,但是我还没有找到任何可以处理大文件的文章。
例如,文件1.csv:

ID, Phone, Email
1.23E+15, 123-456-7890, johnsmith@test.com

需要输出到file2.csv:

ID, Phone, Email
1234680000000000, 123-456-7890, johnsmith@test.com

我知道我说得太离谱了,但这也许能给予你知道我想做什么...

import pandas
import numpy as np

pandas.read_csv('file1.csv', dtype=np.float64)
df = df.apply(pd.to_numeric, errors='coerce')
df.round(0)
df.to_csv(float_format='file2.csv')

下面是我收到的错误:error

h79rfbju

h79rfbju1#

CSV文件中的文本“1.23E+15”,意思是“1.23,15次幂”.,..,.这就是Python、Pandas以及任何人(除了你)都知道的数字。
我说“但是你”,因为你似乎知道在“1. 23 E +15”之前,有值123468000000000。
但是,后来其他一些程序/进程砍掉了“46800...”部分,只剩下“1.23E+15”--一些东西 * 降低了原始值的精度 *。
这就是为什么@TimRoberts问“这是如何生成的?”要恢复1234680000000000,您需要转到上次具有该更高精度值的程序/进程,并尝试将该程序/进程更改为不降低数字的精度

相关问题