- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我找到了 Hadley 的 plyr R 的包非常有帮助,它是用于转换数据的出色 DSL。解决的问题非常普遍,以至于我在其他用例中遇到了它,不是在 R 中操作数据,而是在其他编程语言中。
有谁知道是否存在一个模块可以为 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将其全部链接起来。有更好的解决方案吗?
最佳答案
这是我起草的实现:
def ddply(rows, cols, op=lambda group_rows: group_rows):
"""group rows by cols, then apply the function op to each group
rows is list of values or dict with col names (like read from
csv.reader or csv.DictReader)"""
def group_key(row):
return (row[col] for col in cols)
rows = sorted(rows, key=group_key)
return itertools.chain.from_iterable(
op(group_rows) for k,group_rows in itertools.groupby(rows, key=group_key))
另一个步骤是拥有一组可以作为 op
应用的预定义函数,例如 sum
和其他实用函数。
关于python - 是否有 Hadley 的 ddply 用于 python 的实现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6434048/
在哈德利的 Advanced R book ,有一段代码我无法理解输出。 f <- function(x) substitute(x) g <- function(x) deparse(f(x)) g
我想使用来自 GitHub 的 Hadley Wickam 的secure 包。 示例用法并没有明确说明如何创建 key 以及将它们存储在哪里,我搞砸了一些事情(可能不止一件事)。 我安装了这个包 #
我在 Hadley 的 Advanced R 中看到了这个例子。我的问题是在定义函数之后,j(1) 输出内部函数定义,就像 j(1)() 输出的那样?直觉上,我认为 j(1) 应该输出 [1] 1 2
我找到了 Hadley 的 plyr R 的包非常有帮助,它是用于转换数据的出色 DSL。解决的问题非常普遍,以至于我在其他用例中遇到了它,不是在 R 中操作数据,而是在其他编程语言中。 有谁知道是否
我是一名优秀的程序员,十分优秀!