Запись списка показывает после десятичной позиции, которые не должны существовать - PullRequest
0 голосов
/ 06 января 2020

Я читаю данные из столбцов Excel и сохраняю их в массиве numpy с помощью собственной функции. У меня проблема только с одним из них.

Вот функция:

import numpy as np
import xlrd
import os

# Data Path
input_data_path = os.path.join(os.path.dirname(__file__), "..", r"Input.xlsx")


def read_excel_file_column(filepath, sheetpage, column=0):
    """Gives back a Excel-column as array"""

    # file
    book = xlrd.open_workbook(filepath, encoding_override="utf-8")

    # sheet
    sheet = book.sheet_by_index(sheetpage)

    # numpy-Array
    data = np.array([sheet.cell(i, column).value for i in range(sheet.nrows)])
    return data

Затем я вызываю функцию и читаю столбец из моего файла Excel, в котором есть строка Первая строка, а затем 49 значений с плавающей запятой и распечатка

Фактический столбец Excel

time_robot = read_excel_file_column(input_data_path, 2, column=5)
print(time_robot)

Вот вывод:

['CTRobot' '3.9000000000000004' '0.8999999999999999' '4.199999999999999'
 '6.75' '5.25' '4.35' '6.8999999999999995' '10.35' '3.3000000000000003'
 '3.3000000000000003' '38.25' '6.1499999999999995' '7.199999999999999'
 '4.050000000000001' '2.4000000000000004' '2.4000000000000004' '1.0'
 ...]

Я не понимаю, почему после десятичного числа используется такое количество знаков после запятой.

Я проверил свой лист Excel и удалил все форматы, чтобы убедиться, что он не просто показывает мне округленные значения или что-то еще

Также очень интересно то, что он прекрасно работает со столбцом «E», который в основном такой же: Столбец E

Вызов функции:

time_human = read_excel_file_column(input_data_path, 2, column=4)

Вывод:

['CTHuman' '2.6' '0.6' '2.8' '4.5' '3.5' '2.9' '4.6' '6.9' '2.2' '2.2'
 '25.5' '4.1' '4.8' '2.7' '1.6' '1.6' '9.2' ...]

Я работаю над Windows 10 и с python 3.7.5.

...