我有一个按id
分组的数据框。对于每个id
组,我想返回所有列中a
大于该组a
平均值的行。我尝试了以下方法:
df = pd.DataFrame(data = {"a": np.arange(10), "b": np.arange(10)[::-1], "c": np.random.choice(a = np.arange(10), size = 10)}, index = pd.Index(data = np.random.choice(a = [1,2,3], size = 10), name = "id"))
df.groupby("id").apply(lambda x: x[x.a > x.a.mean()])
我的操作有误吗?
这会引发ValueError错误:重复的级别名称:“id”,分配给级别1,已经用于级别0。
python: 3.6.4.final.0, pandas: 0.23.0, numpy: 1.14.3
- jezrael