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

У меня есть данные около 5 миллионов записей, которые, как на рисунке ниже, мне нужны для получения максимального и среднего значения для каждого идентификатора в новом фрейме данных, чтобы у каждого идентификатора было только одно значение

* 1002. * Я довольно новичок в python и программировании, и эта группа была полезна, но я не вижу соответствующего ответа на этот конкретный вопрос. Спасибо

enter image description here

1 Ответ

1 голос
/ 23 января 2020

Это должно сделать это:

import numpy as np
import pandas as pd

# create dummy data
ids = [1,1,1,1,2,2,2,2,2,3,3,3,3,4,4,4,4]
values = [13,21,34,22,34,2,3,34,12,45,45,23,67,76,32,23,80]
df = pd.DataFrame({'ID': ids, 'Values': values})

df = df.groupby('ID').agg({'Values': [min, max, np.mean]})  # group by on ID and calculate new columns min, max, mean for the values columns
df.columns = df.columns.droplevel(0)  # get rid of the multilevel columns due to the grouping
df.reset_index()

РЕДАКТИРОВАТЬ : благодаря ALollz за указание следующего ярлыка (избегая многоуровневого индекса):

df = df.groupby('ID')['Values'].agg([min, max, np.mean])  # group by on ID and calculate new columns min, max, mean for the values columns
df.reset_index()

Дайте мне знать, если какой-либо из шагов требует проработки.

...