#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
. Есть идеи, почему?