Как преобразовать число в дату (используя эти числа в качестве расстояния от сегодняшней даты), используя pandas datetime - PullRequest
2 голосов
/ 04 июля 2019

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

    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

Ответы [ 4 ]

6 голосов
/ 04 июля 2019

Вы можете достичь этого, используя pd.to_timedelta():

df=df.assign(date=(pd.to_datetime('today')+pd.to_timedelta(df.Number,unit='D')).dt.date)

   id  Number        date
0   1      -3  2019-07-01
1   2      -1  2019-07-03
2   3       6  2019-07-10
2 голосов
/ 04 июля 2019

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

  import datetime
  numer = -3
  datetime.date.today() + datetime.timedelta(days = numer)
1 голос
/ 04 июля 2019

попробуйте

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
0 голосов
/ 04 июля 2019

Этого можно добиться, используя функцию 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...