У меня есть кадр данных pandas, который выглядит примерно как issue
кадр данных ниже:
import pandas as pd
import datetime
Y = 2017
M = 9
dats = (datetime.datetime(Y, M, M, 15, 30), datetime.datetime(Y, M, M, 16),
datetime.datetime(Y, M, M, 16, 30), datetime.datetime(Y, M, M, 17),
datetime.datetime(Y, M, M, 17, 4), datetime.datetime(Y, M, M, 17, 30),
datetime.datetime(Y, M, M, 18), datetime.datetime(Y, M, M, 18, 30))
issue = {'datetime': dats,
'5.0':(2.05, 2.04, 2.04 ,1, float('NaN'), 2.05, 2.04, 5),
'6.0':(5.8, 5.9, 5.2, float('NaN'), 6, 6.01, 5, 5.02)}
issue = pd.DataFrame.from_dict(issue)
Я хотел бы суммировать данные в этом кадре данных, чтобы они содержали только получасовые точки и принимали среднее значение для любых значений, которые происходят в течение этого получаса (исключая значения nan
). Таким образом, конечной целью было бы иметь фрейм данных, который выглядит как resolution
фрейм данных, созданный ниже:
import pandas as pd
import datetime
Y = 2017
M = 9
dats2 = (datetime.datetime(Y, M, M, 15, 30), datetime.datetime(Y, M, M, 16),
datetime.datetime(Y, M, M, 16, 30), datetime.datetime(Y, M, M, 17),
datetime.datetime(Y, M, M, 17, 30), datetime.datetime(Y, M, M, 18),
datetime.datetime(Y, M, M, 18, 30))
resolution = {'datetime': dats2,
'5.0':(2.05, 2.04, 2.04 ,1, 2.05, 2.04, 5),
'6.0':(5.8, 5.9, 5.2, 6, 6.01, 5, 5.02)}
resolution = pd.DataFrame.from_dict(resolution)
Я легко могу сделать это в R, используя dplyr
, но с Python я все еще в некотором роде нуб. Заранее благодарим за любую помощь в этом вопросе!