У меня были следующие данные листа в файле Excel:
id data_1 data_2
1 2018/11/11 00:00 123
2 123 2018/11/2 00:00
Дата в Excel на самом деле является плавающей точкой, поэтому я хочу изменить ее на str, используя следующий синтаксис:
df = df.astype(dtype=str)
Но панды меняют формат даты YYYY/MM/DD
на YYYY-MM-DD
, поэтому я получаю это в выводе:
id data_1 data_2
1 2018-11-11 00:00 123
2 123 2018-11-2 00:00
Как изменить все даты на str и сохранить их в формате YYYY/MM/DD
?
Я не могу использовать df.to_datetime()
или какой-либо синтаксис, подобный этому, потому что не все даты находятся в определенном столбце. И я не хочу проходить по всем столбцам для достижения этого.
Единственный способ, которым я знаю, это использовать регулярные выражения:
df.replace(['((?<=[0-9]{4})-(?=([0-9]{2}-[0-9]{2})))|((?<=[0-9]{4}-[0-9]{2})-(?=[0-9]{2}))'], ['/'], regex=True)
Но это приведет к ошибкам, пока у меня есть данные YYYY-MM-DD
в некоторых других данных str.
Я хочу изменить только тип даты на листе, и df.astype
может это сделать. Единственная проблема - я хочу YYYY/MM/DD
вместо YYYY-MM-DD
.
В общем, я хочу изменить все даты в листе на тип ул. И отформатируйте его в YYYY/MM/DD HH:MM:SS
. astype
может достичь первого шага.
Есть ли простой и быстрый способ добиться этого?
Думаю, что вы читаете.