Добавление 1 дня в выборочный период времени столбца даты - PullRequest
1 голос
/ 17 апреля 2019

У меня есть таблица, в которой есть столбцы «Дата», «Время», «Затраты».

Я хочу выбрать строки, в которых время больше 12:00:00, а затем добавить 1 день в столбец «Дата» выбранных строк.

Как мне поступить?

Пока у меня есть:

df[df['Time']>'12:00:00']['Date'] = df[df['Time']>'12:00:00']['Date'].astype('datetime64[ns]') + timedelta(days=1)

Я новичок в изучении кодирования, и любые предложения будут очень полезны! Благодаря.

1 Ответ

0 голосов
/ 17 апреля 2019

Сначала используйте to_datetime для столбца Date, если не datetime, затем преобразуйте столбец Time в строку, если возможно python time s, преобразуйте в datetime и получите hours by Series.dt.hour, сравните и добавьте 1 день по условию:

df = pd.DataFrame({'Date':['2015-01-02','2016-05-08'],
                   'Time':['10:00:00','15:00:00']})

print (df)
         Date      Time
0  2015-01-02  10:00:00
1  2016-05-08  15:00:00

df['Date'] = pd.to_datetime(df['Date'])
mask = pd.to_datetime(df['Time'].astype(str)).dt.hour > 12
df.loc[mask, 'Date'] += pd.Timedelta(days=1)
print (df)
        Date      Time
0 2015-01-02  10:00:00
1 2016-05-09  15:00:00
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...