Вычислите sQ
, как вы уже сделали:
sQ = df.groupby(['Month']).quantile(0.5)['TmaxScaled'].item()
print(sQ)
297.2379455
Теперь выполните groupby
и разбейте df
на группы:
df_dict = {k : g for k, g in df.groupby(df.TmaxScaled > sQ)}
df_dict[True]
возвращает DataFrame, значения которого превышают квантиль, и наоборот, для df_dict[False]
:
df_dict[True]
Year Month Day TmaxScaled
4 1980 1 7 297.468730
5 1980 1 8 298.330566
6 1980 1 9 297.844157
9 1980 1 12 297.247884
10 1980 1 13 297.851888
11 1980 1 14 298.854523
df_dict[False]
Year Month Day TmaxScaled
0 1980 1 3 296.941457
1 1980 1 4 296.978455
2 1980 1 5 296.654368
3 1980 1 6 296.732218
7 1980 1 10 297.228007
8 1980 1 11 296.916066
Обратите внимание, что это сохраняет порядок внутри групп.