我发现 Hadley 的 plyr 包对于 R 来说非常有用,它是一个用于转换数据的优秀 DSL。它解决的问题非常普遍,以至于在不使用 R 操作数据的其他编程语言中,我也会面临这个问题。
请问是否有类似于 plyr 的 Python 模块存在呢?比如:
def ddply(rows, *cols, op=lambda group_rows: group_rows):
"""group rows by cols, then apply the function op to each group
and return the results aggregating all groups
rows is a dict or list of values read by csv.reader or csv.DictReader"""
pass
实现起来不应该太难,但如果已经存在就更好了。我会使用itertools.groupby
按cols
进行分组,然后应用op
函数,最后使用itertools.chain
把它们链在一起。有更好的解决方案吗?
operator
模块可能对您的预制函数很有用。 - Daenyth