迭代das中的GroupBy对象

2024-10-01 15:35:17 发布

您现在位置:Python中文网/ 问答频道 /正文

是否可以迭代daskgroupby对象来访问底层数据帧?我试过了:

import dask.dataframe as dd
import pandas as pd
pdf = pd.DataFrame({'A':[1,2,3,4,5], 'B':['1','1','a','a','a']})
ddf = dd.from_pandas(pdf, npartitions = 3)
groups = ddf.groupby('B')
for name, df in groups:
    print(name)

但是,这会导致错误:KeyError: 'Column not found: 0'

更一般地说,除了apply方法之外,daskgroupby对象允许什么样的交互?在


Tags: 数据对象nameimportdataframepandaspdfas
2条回答

你可以迭代使用dask的组,也许有更好的方法,但这对我有用。在

import dask.dataframe as dd
import pandas as pd
pdf = pd.DataFrame({'A':[1, 2, 3, 4, 5], 'B':['1','1','a','a','a']})
ddf = dd.from_pandas(pdf, npartitions = 3)
groups = ddf.groupby('B')

for group in pdf['B'].unique():
    print groups.get_group(group)

这会回来的

^{pr2}$

一般迭代数据帧不建议使用对象。这是低效的。相反,您可能希望尝试构造一个函数,并使用groupby.apply将该函数映射到结果组上

相关问题 更多 >

    热门问题