#python #pandas
Вопрос:
Я читаю файл xlsx, который заранее каждый раз, когда я пытаюсь его открыть, появляется окно с сообщением:
Мы обнаружили проблему с некоторым контентом в «…xlsx». Вы хотите, чтобы мы постарались восстановить как можно больше? Если вы доверяете источнику этой книги, нажмите кнопку да
Я попытался открыть файл с пандами следующим образом::
df = pd.read_excel(path_xlsx)
или
df = pd.read_excel(path_xlsx, dtype=str)
>>ValueError: cannot convert float NaN to integer
Я подозреваю, что рассматриваемая колонка называется «ExpDate» … он содержит данные этого стиля:
NaN
NaN
NaN
31/12/2021
31/12/2021
NaN
Я не могу управлять файлом вручную
Комментарии:
1. нам понадобятся некоторые данные, чтобы воспроизвести это.
2. загрузка не удалась.
4.
NaN
означает «не-число». Вы пытаетесь преобразовать его в число. Что он должен делать?5. api должен преобразовать столбец в str .. Я не хочу преобразовывать даты в целые числа, но я не могу манипулировать файлом вручную
Ответ №1:
Интересная штука!
несмотря на то, что parse_dates имеет значение False, он все равно пытается проанализировать даты, и в основном это зависит от типа столбца, настроенного в excel. Одним из способов было бы, если есть проблема или вы подозреваете проблему с любым столбцом даты, измените этот столбец на текст в excel, прежде чем просить панд прочитать.
import pandas as pd
file_name="Inventory Lots_20210423142831(1).xlsx"
df=pd.read_excel(file_name,header=0,parse_dates=False)
решение этой проблемы, пожалуйста, очистите даты в dataclean,
а затем импортируйте их через pandas.
Результат: Результат
трассировка исключений:
67 cell_contents = xldate.xldate_as_datetime(cell_contents, epoch1904)
# then python3.8/site-packages/xlrd/xldate.py in xldate_as_datetime(xldate, datemode)
150 # The integer part of the Excel date stores the number of days since
151 # the epoch and the fractional part stores the percentage of the day.
--> 152 days = int(xldate)
Комментарии:
1. Скрипт автоматически вводит Wams, загружает файл и открывает его. Я не могу манипулировать excel вручную