我觉得我为以下顺序设置几个派生列的操作编写了不必要的函数:
(defn add-cols[d]
(do
(setv (get d "col0") "0")
(setv (get d "col1") (np.where (> 0 (get d "existing-col")) -1 1))
(setv (get d "col2") (* (get d "col1") (get d "existing-col")))
d
))
以上内容既不简洁也不易于理解。如果能将此模式转换为宏,我将不胜感激。我是宏的初学者,但正在考虑创建类似的东西:
(pandas-addcols d
`col0 : "0",
`col1 : (np.where ( > 0 `existing-col) -1 1),
`col2 : (* `col1 `existing-col))
感谢您对上述内容的任何帮助或指导。宏的最终形式显然也可以不同。最终,最重复的部分是多个“setv”和“get”调用,也许有更优雅的通用方法来删除这些调用。