【问题标题】:0.00003 a value in excel cell converts into 3e-05 when read in python using panda pd.read_excel [duplicate]0.00003 使用 panda pd.read_excel 在 python 中读取时,excel 单元格中的值转换为 3e-05 [重复]
【发布时间】:2019-02-11 16:07:38
【问题描述】:

0.000003 在 python 中使用 panda pd.read_excel 读取时,excel 单元格中的值转换为 3e-05。下面是我的程序。我是 python 的新手,正在尝试学习。请提出建议。

import pandas as pd
import numpy as np
import os
import glob
os.chdir('C:\\Users\\Desktop\\Files\\')
files = glob.glob("CT.xls")
for f in files:
    print(f)
    x = pd.read_excel(f).replace(np.nan, '', regex=True)
    cols = x.loc[0]
    x.drop(x.index[[0]],inplace=True)
    x.columns = cols
    #-------------------
    pipe_del =[]
    for i,j in x.iterrows():
        st = ''
        for k in j:
            st = st + (k).strip() + '|'
        st = st[0:len(st)-1]
        pipe_del.append(st)
    newf = f.split('_')[0].split(' ')[0]+'_'+f.split('_')[0].split(' ')[1]+'_'+f.split('_')[0].split(' ')[2]+'_'+f.split('_')[1].split('.')[0]+'.csv'
    with open(newf, "w") as output:
        for i in pipe_del:
            output.write("%s\n" % i)

【问题讨论】:

  • 这里的问题到底是什么...?
  • 我在 Excel 列中有一个值为 0.0000003 的值,当我在 python 中读取 excel 时,我希望保留这种十进制格式。但它没有发生,而是小数被表示为 3e-05(指数)。
  • 为什么?值是一样的,只是显示方式不同。
  • 请在报告您的价值观时更加小心。起初我以为你在问为什么 3e-6 的 0.000003 被解释为 3e-5,但现在你已经使用了 3e-7 的 0.0000003,所以我认为你只是不太关注零的数量。 (顺便说一句,像这样的错误是指数符号通常是个好主意的原因之一..)

标签: python excel pandas


【解决方案1】:

试试

pd.options.display.float_format = '${:,.6f}'.format

然后打印你的结果。

更改显示设置时要小心,记得访问文档:https://pandas.pydata.org/pandas-docs/stable/options.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-10
    • 1970-01-01
    • 2017-03-03
    • 1970-01-01
    相关资源
    最近更新 更多