#python #pandas
Вопрос:
Работая над очисткой набора данных и обработкой данных для дальнейшего анализа, я использовал различные сценарии очистки.
Мой сценарий прерывается всякий раз, когда между столбцами набора данных появляются какие-либо нежелательные / обычные данные, выполнение сценария застревает, а остальные данные не обрабатываются.
Скрипт, который я пробовал использовать :
import pandas as pd
import numpy as np
pd.options.mode.chained_assignment = None
df = pd.read_excel(open(r'data.xlsx', 'rb'), sheet_name='sheet1')
То, чего я ожидал :
Как я могу обработать весь набор данных, даже если между данными возникают какие-либо исключительные/неизвестные типы данных, пропуская и оставляя неправильные типы данных как есть.
Любой метод обработки исключений, который я могу использовать в этом.
Пожалуйста, предложите.
Комментарии:
1. Какие исключительные данные могут быть получены из электронной таблицы Excel?
2. @SergeBallesta — При обработке и очистке некоторых столбцов типы данных могут отличаться для того, что мы определили в сценарии, например. иногда мы обрабатываем типы данных int/float, но получаем ошибку при обнаружении строкового типа данных. Таким же образом это происходит с остальной частью столбца с типом данных diff и наоборот.
3. Но действительно ли ошибка возникла при
read_excel
вашей дальнейшей обработке или при ее дальнейшей обработке? В последнем случае вы должны показать код, который вызывает ошибку, вместе с примером данных.4. @SergeBallesta — просто хочу спросить, есть ли способ обработки файла Excel, такого как error_bad_lines=False, который мы используем при чтении CSV-файла
5. Вы должны привести минимальный пример (часть) сценария, который вы используете для обработки фрейма данных, и достаточное количество входных данных для воспроизведения. Без этого на ваш вопрос невозможно ответить.
Ответ №1:
Мне кажется, я не совсем понимаю проблему.
У меня всегда просто так это делалось, никогда не было проблем..
import pandas as pd
FileLocation = (r'Test.xlsx')
df = pd.read_excel(FileLocation, sheet_name='sheet1')
print(df.head)
а затем вы можете использовать для каждого цикла для итерации по вашему фрейму данных, если хотите пойти и удалить неправильные данные.
Но если у вас возникли проблемы с программой чтения Excel, считывающей ее как плавающую, но вы хотите, чтобы она была строковой, вы можете сделать это:
import pandas as pd
FileLocation = (r'Test.xlsx')
df = pd.read_excel(FileLocation, sheet_name='sheet1', converters={'COLUMN-NAME':str})
print(df.head)
Тогда вы получите нужный столбец в виде строки или чего угодно еще.