добавление целочисленного столбца к столбцу даты для получения «будущей даты» с использованием python - PullRequest
0 голосов
/ 25 февраля 2020

У меня есть python фрейм данных со столбцом 'date' с ~ 200 элементами в формате гггг-мм-дд.

У меня есть 2-й столбец (в том же фрейме данных) с номером дни (в эти дни меняются ... иногда 1, иногда 360), но всегда целые числа.

Я хочу добавить два вверх.

Столбец даты имеет тип datetime64 [ns], и столбец 'days' имеет тип int64.

действительно застрял. Я могу найти много примеров, когда дни постоянны, но ничего, где дни в столбце.

Пожалуйста, помогите.

Ответы [ 2 ]

0 голосов
/ 25 февраля 2020

Это то, что вы ищете? Pandas имеет свой собственный модуль даты и времени для упрощения работы.

Пример кадра данных:

df = pd.DataFrame({'Dates_Col':['2019-12-15','2020-01-14','2020-03-19','2020-06-17','2019-08-12'], 'Days':[2,15,70,28,3]})
df

O / P

enter image description here

Код для добавления дней из второго столбца в первый столбец:

df['Dates_Col'] = pd.to_datetime(df['Dates_Col']) #Convert the first column to pandas datetime type
df['Dates_Col'] = df['Dates_Col']+pd.to_timedelta(df['Days'],unit='d') #Convert the second column type to pandas timedelta type and add to first column (which is already in date time type)
df

O / P

enter image description here

0 голосов
/ 25 февраля 2020

date.timedelta - это то, что вам нужно после

, вы можете использовать это для указания количества дней (или других приращений времени / даты)

date = datetime.date(2030, 2, 2)
days = datetime.timedelta(2)
print(date + days)

В качестве альтернативы, если вы используете numpy, timedelta сделает то же самое концептуальное для типа datetime64

...