首页 > 解决方案 > 过滤功能可以与 groupby 功能一起使用吗?

问题描述

我有这种由 100 个问题组成的数据框

|Date|QID|Time_1|Answer_1|Time_2|Answer_2|Time_3|Answer_3|
|1/12|001|20    |  A     |  30  |   A    |  34  |   D    |
|1/12|001|22    |  A     |  10  |   A    |  12  |   D    |
|1/12|002|27    |  B     |  40  |   A    |  45  |   D    |
|1/12|002|25    |  A     |  60  |   C    |  23  |   D    |

所以,我想要一个时间的描述性统计数据,例如最大值、最小值、平均值

我使用这段代码:

df.groupby('QID')["Time_1","Time_2"].agg(['min','max', 'mean'])

我得到这个输出:

       Time_1      Time_2
    min max mean min max mean
QID                     
001 20  22  21   10  30   20
002 25  27  26   40  60   50

但是因为我有更多的数据,我想使用这段代码,我得到了一个错误。

df_sample.groupby('QID')[df_sample.filter(like='Time')].agg(['min','max', 'mean'])

TypeError: 'DataFrame' objects are mutable, thus they cannot be hashed

有谁知道任何其他方式或任何简单的方式?谢谢

标签: pythonpandasfiltergroup-by

解决方案


推荐阅读