首页 > 解决方案 > pandas:如何在`groupby.x.apply`之后一一访问分组元素?

问题描述

我有一个这样的数据框

import pandas as pd
df = pd.DataFrame({
  "f":["sum", "min", "max"],
  "t":[2, 2, 3]
})

所以我总结了df

df1 = df.groupby("t").f.apply(lambda x:[x])

产生

t
2    [[sum, min]]
3         [[max]]
Name: f, dtype: object

但我如何引用数据列[[sum,min]], [[max]]

我试过

for t in df1.index:
  print(df1[t].f)

我期待着打印出来

[[sum,min]]
[[max]]

但我只是得到一个错误:

Traceback (most recent call last):
  File "<stdin>", line 2, in <module>
AttributeError: 'list' object has no attribute 'f'

如何引用我apply在每个组中创建的列?

标签: pythonpandasdataframe

解决方案


你可以试试:

for f in df.groupby('t').f.agg(list):
    print(f)
#out
['sum', 'min']
['max']

推荐阅读