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

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

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

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

【问题讨论】:

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

标签: python pandas scientific-notation


【解决方案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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-02-19
    • 1970-01-01
    • 1970-01-01
    • 2020-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多