【问题标题】:Speedup selecting subset加速选择子集
【发布时间】:2018-05-03 21:54:08
【问题描述】:

我正在尝试选择 pandas 数据帧的子集并计算一些统计信息,但是速度非常慢,也许可以更快地完成?

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 ...

【问题讨论】:

  • 你能提供一个样本数据吗?你可以让它超快。

标签: python pandas dataframe subset


【解决方案1】:

好像你需要groupbyagg

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

【讨论】:

    猜你喜欢
    • 2016-05-16
    • 2011-05-03
    • 1970-01-01
    • 2013-03-04
    • 2010-09-20
    • 2018-10-03
    • 2022-01-14
    • 1970-01-01
    • 2012-07-03
    相关资源
    最近更新 更多