Я читаю данные из столбцов 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.