所以我正在开发一个流函数,它将总结几个事件的一些指标。为此,我使用project
函数,它看起来像这样:
(project [(func (:service event) (nth service-list 0))
(func (:service event) (nth service-list 1))
(func (:service event) (nth service-list 2))]
(..))
service-list
是周围函数的参数,它包含必须一起添加的服务向量。 func
是一个函数,它接受两个参数并返回true
/ false
使用上面的代码片段工作正常,但我希望能够简化它以便更大的矢量或小于3个元素可行。
到目前为止,我有这个:
(project (mapv (fn[service] (
`func (:service event) ~service)
) service-list)))
(..)
我认为它会返回一个未评估的函数向量。一旦我意识到project
是一个宏,我就采用了这种方法。不知道我做的是否正确......
答案 0 :(得分:1)
您面临的问题是您无法动态组装宏调用的参数。因此,您需要动态组合整个宏调用。
您可以构建一个clojure表单并在其上调用eval。请采取以下措施。
inpath=r"P:\Data.xlsx"
df1=pd.DataFrame()
for i in ["67059070","67059075","67060055","Screwing Total"]:
df=pd.read_excel(io=inpath,header=0,sheetname="{0}".format(i))
df1["Gel.Menge"]=df["Gel.Menge"].where(df["Gel.Menge"]!=0).dropna()
print(np.round(df1.mode()))
print(np.round(df1.describe())
或者,您也可以使用riemann.streams/project*函数来使用谓词函数而不是 where 表达式。