Преобразовать список в список средних значений (шаг за шагом)

У меня есть двумерный список значений:

[
[[12.2],[5325]],
[[13.4],[235326]],
[[15.9],[235326]],
[[17.7],[53521]],
[[21.3],[42342]],
[[22.6],[6546]],
[[25.9],[34634]],
[[27.2],[523523]],
[[33.4],[235325]],
[[36.2],[235352]]
]

Я хотел бы получить список средних, определенных данным шагом, чтобы для step=10 хотелось бы вот так:

[
[[10],[average of all 10-19]],
[[20],[average of all 20-29]],
[[30],[average of all 30-39]]
]

Как я могу этого достичь? Обратите внимание, что число 10, 20, 30 и т. Д. Не всегда одинаково.

1 ответ

import pandas as pd

df = pd.DataFrame((q[0][0], q[1][0]) for q in thelist)
df['group'] = (df[0] / 10).astype(int)

Теперь DF это:

      0       1  group
0  12.2    5325      1
1  13.4  235326      1
2  15.9  235326      1
3  17.7   53521      1
4  21.3   42342      2
5  22.6    6546      2
6  25.9   34634      2
7  27.2  523523      2
8  33.4  235325      3
9  36.2  235352      3

Затем:

df.groupby('group').mean()

Дает вам ответы, которые вы ищете:

           0       1
group               
1      14.80  132374
2      24.25  151761
3      34.80  235338
Другие вопросы по тегам