我有建筑工地劳动生产率的数据,以及可能影响劳动生产率的许多因素的数据。但是所有的数据都在一个数据帧中,所以我需要根据建筑工地的每个阶段来分割它(我不能手动完成,因为它就像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