Data.table in R into datatable in Python 翻译问题(归一化)

Data.table in R into datatable in Python translation problem (normalization)

我在 R 中有这段代码,我正在使用 data.table,我打算用 datatable 将它翻译成 Python。它使用每个现有列的值除以总数的平均值来创建列。一种规范化。

dataset[ , paste0( cols, suffix) := lapply( .SD,  function(x){ x/mean(x, na.rm=TRUE)} ), 
         by= col_A, 
         .SDcols= cols]

根据文档,update 函数和 del 运算符操作 in-place。如果有很多列,这也可以在循环中完成

DT[:, update(y_suffix = f.y/dt.mean(f.y), v_suffix = f.v/dt.mean(f.v)), by("x")]

-输出

数据

from datatable import dt, f, g, by, update

DT = dt.Frame(x = ["b"]*3 + ["a"]*3 + ["c"]*3,
              y = [1, 3, 6] * 3,
              v = range(1, 10))
from datatable import f,by,update,dt

dataset=dt.Frame({'col_A':[0,0,1,1], 'col_B':[1,2,3,4], 'col_C':[5,6,7,8]})
cols = dataset[:,[int,float]].names
dataset[:, update(**{col+'_norm': f[col]/dt.mean(f[col]) for col in cols if col!='col_A'}), by(f.col_A)]