是否可以在Python中执行glmm(例如SPSS中的GENLINMIXED分析)?我是statsmodels的忠实拥护者,但该库似乎不支持glmm ...是否有其他选择?
-编辑-
决定用R和r2py来做...
def RunAnalyseMLMlogit(dataset, outcomevars, meeneemvars, randintercept, randslope):
from rpy2.robjects import pandas2ri
from rpy2.robjects.packages import importr
base = importr('base')
stats = importr('stats')
lme4 = importr('lme4')
#data
with SavReaderNp(dataset) as reader_np:
array = reader_np.to_structured_array()
df = pd.DataFrame(array)
variabelen = ' '.join(outcomevars) + ' ~ ' + '+'.join(meeneemvars)
randintercept2 = ['(1|'+i+')' for i in randintercept]
intercept = '+'.join(randintercept2)
randslope2 = ['(1+'+meeneemvars[0]+'|'+i+')' for i in randslope]
slope = ' '.join(randslope2)
pandas2ri.activate()
r_df = pandas2ri.py2ri(df)
#model
#random intercepts + random slopes
if …Run Code Online (Sandbox Code Playgroud) 是否可以将包含总秒数的 Pandas 数据帧列转换为另一列,如 hh:mm ?
在我的 mysql 查询中,我可以做类似的事情
SELECT SEC_TO_TIME(xxxx);
Run Code Online (Sandbox Code Playgroud)
但是输出在我的熊猫数据帧中转换错误,所以我想用熊猫而不是 sql 进行从秒到时间的转换......我正在玩 pd.to_timedelta 函数:
df['time'] = pd.Timedelta(Second(df['sec']))
Run Code Online (Sandbox Code Playgroud)
但它不起作用。
-编辑-
解决了!这不起作用:
df['time'] = pd.to_datetime(df["sec"], unit='s')
Run Code Online (Sandbox Code Playgroud)
但那是因为 df["sec"] 的 dtype 是错误的(它是一个对象类型)。我尝试先将列转换为浮动,然后是 pd.to_datetime 函数,现在我有了我想要的:):
df['sec'] = df['sec'].astype('float64')
df['time'] = pd.to_datetime(df["sec"], unit='s')
Run Code Online (Sandbox Code Playgroud)