Как изменить формат неправильных чисел в Excel с помощью pandas

#python #pandas #csv

#python #pandas #csv

Вопрос:

Я пытаюсь импортировать и обработать некоторые csv файлы, которые экспортируются из Excel.
Есть ли какой-либо способ изменить неправильный формат даты, применяемый к ячейке, которая должна иметь числовой формат, используя python с pandas?

Как показано на прилагаемом изображении,
«25.07.1965» эквивалентно 23
948,00, «10.11.1933» эквивалентно 12 368,00 и т.д.

введите описание изображения здесь

Комментарии:

1. Разве вы не можете исправить это в Excel?

2. Да, я могу исправить это в Excel, но я хочу автоматизировать процесс

3. В Excel щелкните заголовок столбца и измените тип на числовой или валютный.

4. В худшем случае мне пришлось бы вывести сообщение об ошибке пользователю с запросом правильного формата столбца

5. Если вы прочитаете их с pandas помощью, то это будет файл из узла xml, то есть он должен быть в формате raw, а не в том формате, который Excel считает нужным, Pandas должен иметь возможность либо обрабатывать это изначально, либо использовать pd.to_datetime метод для приведения его в нужный формат. Тем не менее, предоставьте некоторые данные и ожидаемый результат в виде текста , а не изображения. Вы уже пытались прочитать это в pandas? какая проблема у вас была до сих пор

Ответ №1:

Я считаю, что номер заданной даты соответствует количеству дней с 1/1/1900. Таким образом, вы могли бы в python подсчитать количество дней между этими двумя датами, используя datetime.date object.

Например : date(2020, 7, 11) - date(2020, 7, 2) = 9

Затем вы заменяете значение даты на число, которое вы только что вычислили.

Тем не менее, я считаю, что все же лучше исправить проблему в источнике, а не в python, как предложено в комментариях

Комментарии:

1. Это сработало, но в результате не хватает 2 дней. Например pd.to_datetime('10/3/1930') - pd.to_datetime('1/1/1900') , равно 11232 , вместо 11234 . Есть идеи, почему?