我有一个带变量的数据框,比如a,b,c,d
dat <- data.frame(a=runif(1e5), b=runif(1e5), c=runif(1e5), d=runif(1e5))
Run Code Online (Sandbox Code Playgroud)
并希望在每列之间生成所有可能的双向交互项,即:ab,ac,ad,bc,bd,cd.实际上我的数据框有超过100列,所以我不能手动编码.什么是最有效的方法(注意我不想要b和b a)?
我使用pip 安装了xlwings python包,然后使用此处记录的步骤安装了Excel加载项.但是,当我尝试打开一个.xlsm文件,然后从标题相同的.py文件中导入python函数时,我在Excel中收到以下弹出错误消息:
我已经尝试重新安装xlwings无济于事,除了这个未答复的帖子之外,没有找到任何针对此错误消息的帮助.这个github页面代码表明当抛出此错误消息时
在配置中指定了[not]命令
但我不确定这意味着什么,或者如何修复它.感谢任何帮助 - 谢谢!
我的python和xlwings版本详细信息如下:
Python版本:3.6.1 | Anaconda自定义(64位)| (默认,2017年5月11日,13:25:24)[MSC v.1900 64 bit(AMD64)]
xlwings版本:0.11.5-py36_0
我试图测试我的数据框中的每个列名是否包含特定的字符串(在本例中为"Fld".我的下面的尝试不是编译,我不知道我哪里出错.任何帮助都会是赞赏.
varnames <-colnames(data)
for (i in 1:len(varnames)){
if grepl("Fld",varnames[i])==TRUE {
print varnames[i]
}
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用自定义目标函数实现 lightGBM 分类器。我的目标数据有四类,我的数据被分成 12 个观察值的自然组。
自定义目标函数实现两件事:
总之,对于每组(在我的情况下为 4 个观察值),每列和每行的概率总和应为 1。我编写了一个稍微有点hacky的函数来实现这一点,但是当我尝试在python的xgb框架内运行我的自定义目标函数时,出现以下错误:
类型错误:无法解包不可迭代的 numpy.float64 对象
我的完整代码如下:
import lightgbm as lgb
import numpy as np
import pandas as pd
def standardiseProbs(preds, groupSize, eta = 0.1, maxIter = 100):
# add groupId to preds dataframe
n = preds.shape[0]
if n % groupSize != 0:
print('The selected group size paramter is not compatible with the data')
preds['groupId'] = np.repeat(np.arange(0, int(n/groupSize)), groupSize)
#initialise variables
error = 10000
i …Run Code Online (Sandbox Code Playgroud) 我的数据框中有100个非负列,并希望在R中创建每个非负列的日志转换。如何实现此目的?理想情况下,我想保留原始变量名称,并将后缀“ _log”附加到新变量中。
我正在尝试foreach在Stata中编写一个循环,它将自动生成数据集中所有连续变量的日志转换(排除字符串,二进制变量).我试过的代码似乎不起作用如下:
qui foreach v of varlist _all {
gen 'v' = log(v)
}
Run Code Online (Sandbox Code Playgroud)
另外,我想编写一个循环,它将生成所有可能的交互项排列,但我不知道如何处理这个问题.
r ×3
python ×2
statistics ×2
data-science ×1
excel ×1
excel-vba ×1
lightgbm ×1
python-3.x ×1
stata ×1
vba ×1
xlwings ×1