小编Joo*_*ost的帖子

是否可以在Python中执行glmm?

是否可以在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)

python spss data-analysis

5
推荐指数
1
解决办法
950
查看次数

Python pandas 将秒转换为时间 (hh:mm)

是否可以将包含总秒数的 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)

python pandas

4
推荐指数
1
解决办法
2万
查看次数

标签 统计

python ×2

data-analysis ×1

pandas ×1

spss ×1