小编lig*_*ike的帖子

组合熊猫中的行

我有一个DataFrame,其索引称为city_id格式中的城市[city],[state](例如,new york,ny列中包含整数计数.问题是我有同一个城市的多行,我想city_id通过添加列值来折叠共享a的行我看了看groupby()但是如何将它应用于这个问题并不是很明显.

编辑:

一个例子:我想改变这个:

city_id    val1 val2 val3
houston,tx    1    2    0
houston,tx    0    0    1
houston,tx    2    1    1
Run Code Online (Sandbox Code Playgroud)

进入这个:

city_id    val1 val2 val3
houston,tx    3    3    2
Run Code Online (Sandbox Code Playgroud)

如果有~10-20k行.

python pandas

36
推荐指数
2
解决办法
5万
查看次数

什么时候在Python中使用嵌套函数是好的?

我不是指闭包,外部函数返回内部函数,或者特别是memoization.有几个实例我想写一个递归函数,也许有memoization,并且在外部函数中初始化字典或其他一些数据结构似乎更简单,然后有一个递归的辅助函数写入和访问dict和外部函数的参数.这就是我的意思 -

def foo(arr, l):
   cache = {}
   result = []

   def recursive_foo_helper(i, j, k):
      # some code that depends on arr, l, i, j, k, cache, and result

   for (x, y) in arr:
      if recursive_foo_helper(x, y, k):
         return result
   return None
Run Code Online (Sandbox Code Playgroud)

而不是使用一些超长签名分别声明辅助函数,

recursive_foo_helper(arr, l, i, j, k, cache={}, result=[])
Run Code Online (Sandbox Code Playgroud)

我已经读过,这样做对于memoization来说是非常标准的,但是我很好奇是否对于递归辅助函数是否可行是一致的.

python

9
推荐指数
2
解决办法
1185
查看次数

使用 Quicklisp 安装后使用 iterate

当我使用 Quicklisp ( (ql:quickload "iterate"))加载“迭代”包时,它似乎加载良好,但没有一个功能真正起作用。当我输入时(iterate:iter (for i from 0 to 10) (collect i)),我收到一条错误消息,说“我的变量未绑定”,还有几个样式警告说 COLLECT 和 FOR 是未定义的函数,而 FROM 是未定义的变量。如果我尝试使用 ITER 或 ITERATE 而不是 ITERATE:ITER,也会发生同样的事情。我正在使用 SBCL。

common-lisp quicklisp

5
推荐指数
1
解决办法
915
查看次数

"扭转"J中的一个钩子

我想把把大于2的列表中的所有项目的操作放入J中的无意义(如未明确地捕获变量中的参数)函数中.我想通过使用~钩子来做这个,比如f =: ((> & 2) #)~但似乎既不是也不行((> & 2) #~).

我的理由是,我的函数的形式(f y) g y,其中y是列表,f(> & 2)g#.我将不胜感激任何帮助!

j

5
推荐指数
1
解决办法
178
查看次数

在lisp中总结甚至斐波那契数字

我刚刚开始学习Lisp,我正在解决一些Project Euler问题.我被困在那个你将偶数斐波那契数字加到最大数字之下的那个.我尝试过的事情如下.我读过这篇文章,但我仍然不确定为什么我的方法都不起作用!

CL-USER> (defun sum-even-fibs (max)
           (do ((curr 0 next)
                (next 1 (+ curr next))
                (sum  0 (if (evenp curr) (+ sum curr))))
               ((> max curr) sum)))
SUM-EVEN-FIBS
CL-USER> (sum-even-fibs 10)
0


CL-USER> (defun sum-even-fibs (max)
           (let ((sum 0))
             (do ((curr 0 next)
                  (next 1 (+ curr next)))
                 ((> max curr))
               (if (evenp curr) 
                   (setq sum (+ sum curr))))
             (format t "~d" sum)))
SUM-EVEN-FIBS
CL-USER> (sum-even-fibs 10)
0
NIL
Run Code Online (Sandbox Code Playgroud)

lisp loops common-lisp

4
推荐指数
1
解决办法
567
查看次数

Lisp递归宏问题

我正在编写一个递归的Lisp宏,它接受一个数字n并对身体进行n次评估(来自ANSI Lisp的练习).我已经尝试了两种方法 - 在扩展中使用宏调用,并将宏扩展为本地递归函数.两者都不能像我想要的那样工作.

这是第一个 - 它有一个堆栈溢出,但是当我使用macroexpand-1查看它的扩展时,我似乎很好.

(defmacro n-times (n &rest body)
  (let ((i (gensym)))
    `(let ((,i ,n))
     (if (zerop ,i) nil
         (progn
           ,@body
           (n-times (- ,i 1) ,@body))))))
Run Code Online (Sandbox Code Playgroud)

这是第二个 - 它出错了,"未定义函数#xxxx用参数(z)调用",其中#xxxx是gensym的名称,z比我调用它的数字少1.我认为我使用gensyms和flet的方式存在问题,但我不确定如何正确地执行此操作.

(defmacro n-times (n &rest body)
  (let ((g (gensym)))
    `(flet ((,g (x)
              (if (zerop x) nil
                  (progn
                    ,@body
                    (,g (- x 1))))))
       (,g ,n))))
Run Code Online (Sandbox Code Playgroud)

lisp macros recursion common-lisp

2
推荐指数
2
解决办法
371
查看次数

如何调用Lisp函数列表中的函数?

我正在阅读Practical Common Lisp,我正在玩REPL中的闭包(第6章).我正在尝试下面的代码,我认为这是一个闭包列表,但我无法弄清楚如何在REPL同时调用所有这些代码:

(defparameter *fn*
   (let ((count 10))
     (list
      #'(lambda () (incf count))
      #'(lambda () (decf count))
      #'(lambda () count))))
Run Code Online (Sandbox Code Playgroud)

我已经阅读了这个问题的答案,并尝试了一些和其他一些,但似乎没有任何工作.这是我尝试过的 -

CL-USER> (apply #'funcall *fn*)
; Evaluation aborted on #<CCL::TOO-MANY-ARGUMENTS #x2100B8890D>.
CL-USER> (funcall *fn*)
; Evaluation aborted on #<TYPE-ERROR #x2100B5667D>.
CL-USER> (loop for function in *fn*
      (collect (funcall function)))
; Evaluation aborted on #<CCL::SIMPLE-PROGRAM-ERROR #x2100C21D4D>.
CL-USER> (map #'funcall *fn*)
; Evaluation aborted on #<CCL::TOO-FEW-ARGUMENTS #x2100B7320D>.
Run Code Online (Sandbox Code Playgroud)

我正在寻找的东西将打印出来(11 9 10).

谢谢你的帮助!

lisp closures common-lisp

1
推荐指数
1
解决办法
209
查看次数

标签 统计

common-lisp ×4

lisp ×3

python ×2

closures ×1

j ×1

loops ×1

macros ×1

pandas ×1

quicklisp ×1

recursion ×1