Как преобразовать число в дату (используя эти числа в качестве расстояния от сегодняшней даты). Вот мои данные

    id  Number
    1   -3
    2   -1
    3    6

Потому что сегодня 04/07/2019, поэтому его можно преобразовать в

    id  Number  date
    1   -3      01/07/2019
    2   -1      03/07/2019
    3    6      10/07/2019

2
Nabih Bawazir 4 Июл 2019 в 10:32

3 ответа

Попробуй это

df = pd.DataFrame(data={'number':[-3,2]})
df['date'] = df['number'].apply(lambda x: datetime.datetime.now() +pd.to_timedelta(x, unit='d') )
df['date'] = pd.to_datetime(df['date']).dt.date
print(df)
      number    date
0      -3    2019-07-01
1       2    2019-07-06
1
tawab_shakeel 4 Июл 2019 в 07:38

Вы можете добиться этого, используя функцию today из класса datetime.date и класс Timedelta из Pandas. Для форматирования вывода, как вы хотите, вы можете использовать функцию strftime.

df['date'] = df['Number'].apply(lambda x: (datetime.date.today() + pd.Timedelta('{} days'.format(x))).strftime('%d/%m/%Y'))
    Number  date
0   -3      01/07/2019
1   -1      03/07/2019
2   6       10/07/2019
0
Alejandro 4 Июл 2019 в 09:26

Самый быстрый способ, который я знаю, используя .today и timedelta: https://docs.python.org/3/library/datetime. HTML # datetime.timedelta

  import datetime
  numer = -3
  datetime.date.today() + datetime.timedelta(days = numer)
2
Omer Ben Haim 4 Июл 2019 в 07:36