Python strftime дней без нуля - PullRequest
       3

Python strftime дней без нуля

1 голос
/ 31 октября 2019

Почему не работают коды с этой страницы ?: http://strftime.org/. Я хочу вывести дату и месяцы без начальных нулей, например 'm / d / yyyy'

например: '4/5/1992' YES

'04 / 05/1992 'NO

from datetime import datetime, timedelta, date
yest = datetime.strftime(datetime.now() - timedelta(21), '%-m-%-d-%Y')
print(yest)
ValueError                                Traceback (most recent call last)
<ipython-input-35-7c70a0a7eee5> in <module>
      1 from datetime import datetime, timedelta, date
----> 2 yest = datetime.strftime(datetime.now() - timedelta(21), '%-m-%-d-%Y')
      3 print(yest)

ValueError: Invalid format string

1 Ответ

1 голос
/ 31 октября 2019

Эта опция %-m указывает, что формат зависит от платформы, поэтому пробег может отличаться.

Вы можете просто использовать f-строки в Python 3.

yest = datetime.now() - timedelta(21)
yest = f'{yest.month}/{yest.day}/{yest.year}'
>>> yest
'10/9/2019'

ВСлучай вашего фрейма объяснен в комментариях:

df = pd.DataFrame({
    'fecha_vencimiento': [
        '12/25/2009', '01/05/2010', '04/13/2011', '']})

df['fecha_vencimiento'] = pd.to_datetime(
    df['fecha_vencimiento'], format='%m/%d/%Y', errors='coerce').apply(
        lambda x: f'{x.month}/{x.day}/{x.year}' 
        if pd.notnull(x) else '')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...