以科学记数法将带有科学记数法的文本文件读取到 pandas 数据框

Posted

技术标签:

【中文标题】以科学记数法将带有科学记数法的文本文件读取到 pandas 数据框【英文标题】:read txt file with scientifc notations to pandas dataframe in scientific notation 【发布时间】:2017-03-30 23:11:22 【问题描述】:

有没有办法让 txt 文件中的科学记数法保持一致,并将其读入 pandas 数据框。

pd.read_csv(physio_files[1], sep=" ", header = None)

上面的命令正在禁止科学记数法。

【问题讨论】:

科学记数法是数字的外部表示,而不是内部属性。您可以用科学或定点表示法显示任何浮点数,这是您的选择,而不是 pandas。 @DYZ 我同意。但是我怎样才能让 pandas 以科学计数法而不是默认的定点表示法显示呢? 这个问题(尤其是第一个答案)可能会有所帮助***.com/questions/21137150/… @DYZ 答案显示了如何抑制与我打算完全相反的科学记数法 答案解释了如何“你可以指定你自己的字符串转换器...”这可能是科学记数法的转换器。 【参考方案1】:

考虑数据框df

df = pd.DataFrame(1000000., range(5), range(5))
print(df)

           0          1          2          3          4
0  1000000.0  1000000.0  1000000.0  1000000.0  1000000.0
1  1000000.0  1000000.0  1000000.0  1000000.0  1000000.0
2  1000000.0  1000000.0  1000000.0  1000000.0  1000000.0
3  1000000.0  1000000.0  1000000.0  1000000.0  1000000.0
4  1000000.0  1000000.0  1000000.0  1000000.0  1000000.0

您可以使用 pandas 'displat.float_format' 选项控制格式。您还可以使用 pd.option_context 临时为该选项假定一个值

使用':0.4e'.format 作为您的自定义格式化程序。更改4 以满足您的需要。

with pd.option_context('display.float_format', ':0.4e'.format):
    print(df)

           0          1          2          3          4
0 1.0000e+06 1.0000e+06 1.0000e+06 1.0000e+06 1.0000e+06
1 1.0000e+06 1.0000e+06 1.0000e+06 1.0000e+06 1.0000e+06
2 1.0000e+06 1.0000e+06 1.0000e+06 1.0000e+06 1.0000e+06
3 1.0000e+06 1.0000e+06 1.0000e+06 1.0000e+06 1.0000e+06
4 1.0000e+06 1.0000e+06 1.0000e+06 1.0000e+06 1.0000e+06

【讨论】:

以上是关于以科学记数法将带有科学记数法的文本文件读取到 pandas 数据框的主要内容,如果未能解决你的问题,请参考以下文章

Jasper Report 以 CSV 格式导出带有科学计数法的数字

SAS - 从带有科学计数法数字的csv文件导入时如何保留实际数字

pandas从excel读取数据数字类型过长出现科学计数法的问题

将带有科学记数法的 .csv 导入 R 以保留科学记数法?

为啥文本文件中的身份证号码粘贴到EXCEL中时将变为科学计数法表示

Matlab:在文本框中应用科学记数法