как классифицировать или перегруппировать набор данных на основе изменения во времени в python - PullRequest
0 голосов
/ 01 февраля 2020

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

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 ```


# this is the result I desire.... How can I then add a new column to this where I can specify each cell to be grouped hourly. for instance, all the transactions within 00:00:00 to 00:59:59 to be filled with 1, transactions within 01:00:00 to 01:59:59 to be filled with 2, and so on till 23:00:00 to 23:59:59 to be filled with 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 голосов
/ 01 февраля 2020
df.sort_values(by=["period"])
timeStamp_list = (pd.to_datetime(list(df['period'])))
df['Hour'] =timeStamp_list.hour

попробуйте этот код, у меня это работает.

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

Вы можете использовать регулярные выражения и str.extract

import pandas as pd
pattern= r'^(\d{1,2}):' #capture the digits of the hour
df['hour']=df['period'].str.extract(pattern).astype('int') + 1 # cast it as int so that you can add 1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...