Как я могу сгенерировать статистические функции из всех значений в столбце из фрейма данных, проиндексированного отсортированной временной серией в Pandas (Python)? - PullRequest
0 голосов
/ 25 января 2020

Мне дали данные о рождении ребенка из больницы и попросили выполнить с ними определенные задачи:

метка времени этническая принадлежность пол body_mass

01:03:27 indian m 8.1

01:07:20 hispanic f 5.9

01:09:34 romani m 7.2

... ... ... ...

11:56:15 irish f 6.3

, и мне нужно сгенерировать статистические характеристики за каждое значение в «этнической принадлежности» через каждые 10 минут.

timestamp indian_avg indian_max indian_min ... iris_min

01:20:00 7.1 9.5 4.7 ... 5.1

01:40:00 7.2 8.8 5.6 ... 6.9

... ... ... ... ... ...

12:00:00 7.6 10.1 5.1 ... 6.7

Пожалуйста, помогите, я новичок и застрял на этой проблеме в течение дня

1 Ответ

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

Вы можете использовать pd.Grouper ! и сгруппируйте по частоте и этнической принадлежности.

df.groupby([pd.Grouper(freq='10min'), 'ethnicity']) \
  .agg({'body_mass': ['max', 'min']})

Чтобы получить точный формат, который вы хотите использовать для вывода, можно выполнить следующие манипуляции для получения желаемого результата (подробнее см .: Pandas - Как сгладить иерархический индекс в столбцах

df.groupby([pd.Grouper(freq='10min'), 'ethnicity']) \
  .agg({'body_mass': ['max', 'min']}) \
  .unstack()
df.columns = [' '.join(col).strip() for col in df.columns.values]
...