Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Python提取excel表中显示的准确价格数据,而不在Python上舍入值';s侧_Python_Excel_Pandas_Xlrd - Fatal编程技术网

使用Python提取excel表中显示的准确价格数据,而不在Python上舍入值';s侧

使用Python提取excel表中显示的准确价格数据,而不在Python上舍入值';s侧,python,excel,pandas,xlrd,Python,Excel,Pandas,Xlrd,我有一个包含价格数据的excel表格,我想使用Python获取这些数据。excel工作表如下所示: Unit Price(USD) --------------- 1235.79 1.23 然而,价格的实际值有时为小数点后3位,例如,实际值分别为1235.794和1.234 这是我用来提取它们的代码。我正在使用xlrd模块提取数据 def bottom_mf(row, col): data_list = [] global stop_iter_row # con

我有一个包含价格数据的excel表格,我想使用Python获取这些数据。excel工作表如下所示:

Unit Price(USD)
---------------
1235.79
1.23
然而,价格的实际值有时为小数点后3位,例如,实际值分别为1235.794和1.234

这是我用来提取它们的代码。我正在使用xlrd模块提取数据

def bottom_mf(row, col):
    data_list = []
    global stop_iter_row         # constant
    while(row < stop_iter_row):           
        row += 1        
        if isinstance(pd.cell(row, col).value, float):
            data_list.append("%0.15g" % pd.cell(row, col).value)  
        else:
            data_list.append(pd.cell(row, col).value)  
    return data_list
def bottom_mf(行、列):
数据列表=[]
全局停止行常数
而(行<停止行):
行+=1
如果isinstance(局部单元格(行、列)、value、float):
数据列表追加(“%0.15g”%pd.cell(row,col.value)
其他:
数据列表追加(局部单元格(行、列).value)
返回数据列表
运行时应运行的代码示例:

import xlrd as xd
workbook1       = xd.open_workbook("sample.xlsx", on_demand = True)
sheet_names_pdf = workbook1.sheet_names()
pd              = workbook1.sheet_by_name(sheet_names_pdf[0]) 

stop_iter_row = pd.nrows()

def bottom_mf(row, col):
    data_list = []
    global stop_iter_row
    while(row < stop_iter_row):           
        row += 1        
        if isinstance(pd.cell(row, col).value, float):
            data_list.append("%0.15g" % pd.cell(row, col).value)  
        else:
            data_list.append(pd.cell(row, col).value)  
    return data_list

list_of_price = bottom_mf(2, 2)
print(list_of_price)
将xlrd作为xd导入
workbook1=xd.open\u工作簿(“sample.xlsx”,on\u demand=True)
工作表名称pdf=workbook1.工作表名称()
pd=工作簿1.工作表按工作表名称(工作表名称\u pdf[0])
stop_iter_row=pd.nrows()
def底部_mf(行、列):
数据列表=[]
全球停机位
而(行<停止行):
行+=1
如果isinstance(局部单元格(行、列)、value、float):
数据列表追加(“%0.15g”%pd.cell(row,col.value)
其他:
数据列表追加(局部单元格(行、列).value)
返回数据列表
价格清单=底部价格(2,2)
打印(价格清单)
pd.单元格(行、列).value
指价格数据。例如,我得到的数据是1235.794,而不是1235.79。我知道Python可以把这个数字四舍五入得到它,但我想把它提取出来,就像在excel表中看到的那样。我怎样才能做到这一点

xlrd能做到这一点吗?或者我应该使用其他模块,还是取整是唯一的方法

编辑1:

上面代码中使用xlrd提取的值是excel中的浮点数,而不是我在工作表中实际看到的数据。我想得到的是我在工作表上看到的数据,单元格1可能是1.2345,但工作表上显示的是1.23,单元格2可能是10.456631,但在工作表上显示的是10.5。代码需要同时处理这两个单元格,而不必在Python中使用舍入方法


感谢您的帮助。

评论不适用于长时间讨论;此对话已结束。评论不用于扩展讨论;这段对话已经结束。