Ускорение выбора подмножества - PullRequest
0 голосов
/ 04 мая 2018

Я пытаюсь выбрать подмножество pandas dataframe и вычислить некоторую статистику, но это мучительно медленно, может быть, это можно сделать быстрее?

column_name1_set = df.column_name1.unique()
column_name2_set = df.column_name2.unique()

for i, name1 in enumerate(column_name1_set):
    for name2 in column_name2_set:
        df_t = df[(df['column_name1']==int(name1)) & (df['column_name2']==name2)]
        s = df_t.sum(axis=0)
        s['amount_min'] = df_t['amount'].min()
        s['amount_max'] = df_t['amount'].max()
        s['amount_mean'] = df_t['amount'].mean()
        s['amount_median'] = df_t['amount'].median()

        #store s ...

1 Ответ

0 голосов
/ 04 мая 2018

Похоже, вам нужно groupby с agg

df.groupby(['column_name1','column_name2']).sum()['amount'].agg(['min','max','mean','median'])
...