如何按组应用功能?

我来自这个讨论开始的另一个话题。假设我有这个来自心理学研究的 pandas 数据框,其中我有一个因子变量(国家)和一些来自李克特量表的项目。


我定义了一个函数来执行 Cronbach 的 Alpha 分析,它具有以下代码:


def cronbach_alpha(df):

    # 1. Transform the df into a correlation matrix

    df_corr = df.corr()

    

    # 2.1 Calculate N

    # The number of variables equals the number of columns in the df

    N = df.shape[1]

    

    # 2.2 Calculate R

    # For this, we'll loop through the columns and append every

    # relevant correlation to an array calles "r_s". Then, we'll

    # calculate the mean of "r_s"

    rs = np.array([])

    for i, col in enumerate(df_corr.columns):

        sum_ = df_corr[col][i+1:].values

        rs = np.append(sum_, rs)

    mean_r = np.mean(rs)

    

   # 3. Use the formula to calculate Cronbach's Alpha 

    cronbach_alpha = (N * mean_r) / (1 + (N - 1) * mean_r)

    return cronbach_alpha

现在我很高兴我可以使用这里的命令从我的项目中获取 Cronbach's alpha:


cronbach_alpha(sim_data.drop("country",1))

但是,我想为所有国家/地区提供 Cronbach's alpha。我想要的结果类似于 R 的结果

http://img.mukewang.com/6487d97d0001be2a08370613.jpg

如您所见,它对所有项目(此数据集中的 15 个项目)运行 Cronbach's alpha,但所有分析均按每个国家/地区分组。我很确定它可以用 Python 完成并且用户开始帮助我。



烙印99
浏览 113回答 0
0回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python