以科学记数法将带有科学记数法的文本文件读取到 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读取数据数字类型过长出现科学计数法的问题