在分割的数据帧中进行相关性分析(对每个单独的分割),并比较结果



我有建筑工地劳动生产率的数据,以及可能影响劳动生产率的许多因素的数据。但是所有的数据都在一个数据帧中,所以我需要根据建筑工地的每个阶段来分割它(我不能手动完成,因为它就像100多个阶段,我想自动化它(。分解DF i可以单独地对每个阶段进行相关性分析。我的主要目标是在每个阶段并排比较这些因素的影响。检查此图像可能会使其更不受欢迎。

TKS!

听起来像是有一个DataFrame,它包含以下列:阶段、生产力、因子a、因子B。。。,因子X(你们的投入(,你们想要一个按阶段划分的生产力和因子的相关矩阵,特别是看每个因子和每个阶段的生产力(你们的产出(之间的相关性。如果我理解正确,那么你可以这样在你的图像中创建表格(比如你的数据在DataFramedf中,我在这里使用了随机值(:

阶段相关矩阵:

corr_mat_by_stage = df.groupby( "stage" ).corr()

对于阶段A和B以及因子A-c,这看起来是这样的(图中的中间表格(:

>>> corr_mat_by_stage.round( 2 )
factor a  factor b  factor c  productivity
stage                                                         
A     factor a          1.00     -0.28      0.81         -0.78
factor b         -0.28      1.00      0.07          0.12
factor c          0.81      0.07      1.00         -0.39
productivity     -0.78      0.12     -0.39          1.00
B     factor a          1.00      0.45      0.59          0.52
factor b          0.45      1.00      0.82          0.80
factor c          0.59      0.82      1.00          0.75
productivity      0.52      0.80      0.75          1.00

然后,为了得到一个更简洁的表,它只包含每个阶段的生产力行/列,您可以筛选该列并调整数据透视图,以便将阶段作为列,如图中的第三个表所示:

prod_factor_corr_by_stage = corr_mat_by_stage["productivity"].reset_index().pivot( index="level_1", columns="stage", values="productivity" )

这看起来像这样(在你的图像中最右边的表格(:

>>> prod_factor_corr_by_stage.round( 2 )
stage            A     B
level_1                 
factor a     -0.78  0.52
factor b      0.12  0.80
factor c     -0.39  0.75
productivity  1.00  1.00

最新更新