Как заполнить новый столбец данными на основе временного диапазона в pandas - PullRequest
0 голосов
/ 31 января 2020
Time_duration = df['period']
print (Time_duration)

0        23:59:56
1        23:59:56
2        23:59:55
3        23:59:53
4        23:59:52
           ...
74187    00:00:18
74188    00:00:09
74189    00:00:08
74190    00:00:03
74191    00:00:02

Как я могу добавить новый столбец к этому, где я могу указать каждую ячейку, которая будет группироваться ежечасно. например, все транзакции в диапазоне от 00:00:00 до 00:59:59 должны быть заполнены 1, транзакции в диапазоне от 01:00:00 до 01:59:59 - 2 и так далее до 23:00. : От 00 до 23:59:59 для заполнения 24.

0        23:59:56        24
1        23:59:56        24
2        23:59:55        24
3        23:59:53        24
4        23:59:52        24
           ...
74187    00:00:18         1
74188    00:00:09         1
74189    00:00:08         1
74190    00:00:03         1
74191    00:00:02         1

Ответы [ 2 ]

0 голосов
/ 31 января 2020

Убедитесь, что столбец равен Timedelta, затем используйте целочисленное деление на один час.

#df['period'] = pd.to_timedelta(df['period'])

df['hour'] = (df['period'] // pd.Timedelta(hours=1)) + 1

    period  hour
0 23:59:56    24
1 23:59:56    24
2 23:59:55    24
3 23:59:53    24
4 23:59:52    24
5 00:00:18     1
6 00:00:09     1
7 00:00:08     1
8 00:00:03     1
9 00:00:02     1
0 голосов
/ 31 января 2020
import datetime as dt

def hr_rt(t_str=str):
    time = dt.datetime.strptime(t_str, "%H:%M:%S")
    return time.hour + 1
df3['hr'] = df3.time.apply(hr_rt)


 sr_no      time  hr
0      0  23:59:56  24
1      1  23:59:56  24
2      2  23:59:55  24
3      3  23:59:53  24
4      4  23:59:52  24

Думаю, это должно помочь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...