Python меняет формат от часа до минуты - PullRequest
0 голосов
/ 26 мая 2018

У меня есть pandas dataframe как:

df
    DateTime    Qty
1/1/2018 0:00    0.6 
1/1/2018 0:15    0.6 
1/1/2018 0:30    0.4 
1/1/2018 0:45    0.5 
1/1/2018 1:00    1.0 
1/1/2018 1:15    0.2 
1/1/2018 1:30    0.2 
1/1/2018 1:45    0.5 
1/1/2018 1:45    0.0 
1/1/2018 2:00    0.3 

Я хочу изменить приведенные выше данные на:

df
DateTime         Qty    DateTime2
1/1/2018 0:00    0.6    1/1/2018 0:00
1/1/2018 0:15    0.6    1/1/2018 1:00
1/1/2018 0:30    0.4    1/1/2018 1:00
1/1/2018 0:45    0.5    1/1/2018 1:00
1/1/2018 1:00    1.0    1/1/2018 1:00
1/1/2018 1:15    0.2    1/1/2018 2:00
1/1/2018 1:30    0.2    1/1/2018 2:00
1/1/2018 1:45    0.5    1/1/2018 2:00
1/1/2018 1:45    0.0    1/1/2018 2:00
1/1/2018 2:00    0.3    1/1/2018 2:00

Есть ли питонский способ сделать это.Решение, которое у меня есть, состоит в том, чтобы получить минуты, а когда оно больше 15, добавить час к часу даты и времени

Мое решение:

df['hrAdder'] = np.where(pd.DatetimeIndex(df['DateTime2'].values).minute >= 15., 1, 0)
df['DateTime3'] = df['DateTime2'] + pd.to_timedelta(df['hrAdder'], unit='h')

1 Ответ

0 голосов
/ 26 мая 2018

Настройка

df['DateTime'] = pd.to_datetime(df.DateTime)
df['DateTime2'] = df.DateTime
condition = df.DateTime2.dt.minute >= 15

dt.ceil с loc

df.loc[condition, 'DateTime2'] = df[condition].DateTime2.dt.ceil(freq='H')

# Result

             DateTime  Qty           DateTime2
0 2018-01-01 00:00:00  0.6 2018-01-01 00:00:00
1 2018-01-01 00:15:00  0.6 2018-01-01 01:00:00
2 2018-01-01 00:30:00  0.4 2018-01-01 01:00:00
3 2018-01-01 00:45:00  0.5 2018-01-01 01:00:00
4 2018-01-01 01:00:00  1.0 2018-01-01 01:00:00
5 2018-01-01 01:15:00  0.2 2018-01-01 02:00:00
6 2018-01-01 01:30:00  0.2 2018-01-01 02:00:00
7 2018-01-01 01:45:00  0.5 2018-01-01 02:00:00
8 2018-01-01 01:45:00  0.0 2018-01-01 02:00:00
9 2018-01-01 02:00:00  0.3 2018-01-01 02:00:00
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...