Изменить день объекта DateTime, используя значения в столбце панд данных - PullRequest
0 голосов
/ 09 февраля 2019

Допустим, у меня есть фрейм данных из 10 000+ строк со столбцами Day и Month, где Month - это объект даты и времени.Значение «день» в объекте Month неверно, поэтому я хочу заменить его на соответствующее значение из столбца Day.Как бы я поступил так?

import datetime as dt

df = pd.DataFrame({
'Month': [dt.date(2017,9,1),dt.date(2017,11,1),dt.date(2017,9,1)],
'Day': [7, 21,14],
})

Day Month
7   2017-09-01
21  2017-11-01
14  2017-09-01

Итак, я хочу, чтобы конечный результат выглядел так:

Day Month       New_Col
7   2017-09-01  2017-09-07
21  2017-11-01  2017-11-21
14  2017-09-01  2017-09-14

1 Ответ

0 голосов
/ 09 февраля 2019

Преобразовать столбец Month в дату и время to_datetime и добавить столбец Day, преобразованный to_timedelta с:

df['New_Col'] = pd.to_datetime(df['Month']) + pd.to_timedelta(df['Day'], unit='d')
print (df)
        Month  Day    New_Col
0  2017-09-01    7 2017-09-08
1  2017-11-01   21 2017-11-22
2  2017-09-01   14 2017-09-15

При необходимости вычестьодин день:

df['New_Col'] = pd.to_datetime(df['Month']) + pd.to_timedelta(df['Day'] - 1, unit='d')
print (df)
        Month  Day    New_Col
0  2017-09-01    7 2017-09-07
1  2017-11-01   21 2017-11-21
2  2017-09-01   14 2017-09-14
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...