Я новичок в Python (опыт работы в MATLAB и инженерии) и столкнулся с проблемой.
У меня есть переданные мне файлы Excel, которые содержат раздел заголовка, и затем раздел данных под ним. В разделе данных есть числа, некоторые даты (неважные для меня) и строки. Я пишу код для анализа файлов и листов внутри них (их много) и компилирования их в df/objects, чтобы я мог манипулировать ими для последующей обработки (а-ля MATLAB).
Теперь проблема, с которой я столкнулся, заключается в том, что некоторые мои данные поступают нормально при использовании pd.read_excel, но некоторые из них малы (порядок величины в тысячных, десятитысячных
и стотысячных долях). тысячные доли) и импортируется как целое число со значением 0 вместо числа с плавающей запятой (пример ниже). Я пробовал использовать astype, dtype и некоторые другие формы преобразования, но они либо полностью исключают строки (которые мне нужно использовать для привязки частей моего кода при анализе конкретных вещей или их отсутствия), либо удаляют строки в столбце, где возникает проблема (которую мне все еще нужно использовать/сохранять). Другие методы выдают ошибки:/
Я подтвердил, что данные в таблицах в порядке и содержат ожидаемое значение. Я заметил несколько старых сообщений, в которых проблема с точностью была связана с Excel. Для меня это не тот случай.
Как я могу определить плавающую точность определенных переменных ячеек или просто чисел в целом, не портя строки на листе? Конкретное место (строка и столбец), где они появляются, варьируется от листа к листу, поэтому жесткое кодирование массива или местоположений Excel не является хорошим решением, и существует так много наборов/листов, что ручное редактирование файлов Excel для меня не может быть и речи. Единственное, о чем я могу думать, это повторно импортировать данные Excel в середине процесса, как только у меня будет какая-то ссылка на переменную, где я могу найти эти неправильно нулевые значения, но опять же, это кажется громоздким и неэффективным. Я надеюсь, что найдется какой-нибудь элегантный обходной путь.
Заранее спасибо!
-писклявый
Sheet.xlsx
заголовок 1
заголовок 2
заголовок 3
текст
12
0,0001
Нет
0,001текст
текст
текст
11
Код Python< /h2>
импортировать pandas как pd
directory = C:\Data
sheet =sheet1.xlsx
importdata = pd.read_excel(directory,sheet_name=sheet, header=None)
print(importdata.loc[2,1]) #getting this< /p>
output: 0
print(importdata.loc[1,1]) #хочу это с большей точностью... хорошо с 12.00000 или чем-то еще
output: 12
Подробнее здесь: https://stackoverflow.com/questions/784 ... -in-data-c