【问题标题】:How to find Coefficient Correlation of two rows in pyspark如何在pyspark中找到两行的系数相关性
【发布时间】:2021-07-13 10:32:40
【问题描述】:

我有以下 pyspark 数据框

stat        col_A    col_B       col_C     col_D   
count        14       14          14 14      14
Actual        4       4001       160987      49  
Regression    3       3657       131225      38  

我想找到行实际回归的**Coefficient Correlation **。并将 ans 添加为新行 CV

stat        col_A    col_B       col_C     col_D   
count        14       14          14 14      14
Actual        4       4001       160987      49  
Regression    3       3657       131225      38  
CV        

在 Spark 文档中,我们可以应用 corr(col1, col2, method=None) 方法。但它在柱子上。但就我而言,我希望它排成一行。 在熊猫中我已经这样做了

(df1.loc[['Actual','Regression']].std(axis = 0, ddof=0,skipna = True))/(df1.loc[['Actual','Regression']].mean(axis = 0))*100

【问题讨论】:

    标签: apache-spark pyspark apache-spark-sql


    【解决方案1】:
    result = df.union(
        df.filter("stat in ('Actual', 'Regression')")
          .select(
              F.lit('CV').alias('stat'), 
              *[(F.stddev_pop(c) / F.mean(c) * 100).alias(c) for c in df.columns[1:]]
          )
    )
    
    result.show()
    +----------+------------------+-----------------+------------------+------------------+
    |      stat|             col_A|            col_B|             col_C|             col_D|
    +----------+------------------+-----------------+------------------+------------------+
    |     count|              14.0|             14.0|              14.0|              14.0|
    |    Actual|               4.0|           4001.0|          160987.0|              49.0|
    |Regression|               3.0|           3657.0|          131225.0|              38.0|
    |        CV|14.285714285714285|4.492034473752938|10.185071112753755|12.643678160919542|
    +----------+------------------+-----------------+------------------+------------------+
    

    与您的预期输出一致:

    (df1.loc[['Actual','Regression']].std(axis = 0, ddof=0,skipna = True))/(df1.loc[['Actual','Regression']].mean(axis = 0))*100
    col_A    14.285714
    col_B     4.492034
    col_C    10.185071
    col_D    12.643678
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-01-22
      • 1970-01-01
      • 2020-09-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多