【问题标题】:create matrix structure using pandas使用熊猫创建矩阵结构
【发布时间】:2016-08-31 03:31:32
【问题描述】:

我已将以下包含代码和系数数据的 CSV 文件加载到以下数据框 df 中:

CODE|COEFFICIENT  
A|0.5  
B|0.4  
C|0.3

import pandas as pd
import numpy as np
df= pd.read_csv('cod_coeff.csv', delimiter='|', encoding="utf-8-sig")

给予

  ITEM   COEFFICIENT  
0    A       0.5  
1    B       0.4  
2    C       0.3  

从上面的数据帧中,我需要创建一个如下的最终数据帧,它具有矩阵结构和系数的乘积:

     A         B         C        
A   0.25      0.2        0.15  
B   0.2       0.16       0.12  
C   0.15      0.12       0.09

我正在使用np.multiply,但我没有成功生成结果。

【问题讨论】:

    标签: python pandas numpy dataframe


    【解决方案1】:

    numpy 作为一个更快的选择

    pd.DataFrame(np.outer(df, df), df.index, df.index)
    


    时间

    给定样本

    30,000 行

    df = pd.concat([df for _ in range(10000)], ignore_index=True)
    

    【讨论】:

      【解决方案2】:

      您想在向量及其转置之间进行数学运算。用.T 转置并在两个数据帧之间应用矩阵dot 函数。

      df = df.set_index('CODE')
      
      df.T
      Out[10]: 
      CODE             A    B    C
      COEFFICIENT    0.5  0.4  0.3
      
      df.dot(df.T)
      Out[11]: 
      CODE     A     B     C
      CODE                  
      A     0.25  0.20  0.15
      B     0.20  0.16  0.12
      C     0.15  0.12  0.09
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-01-25
        • 1970-01-01
        • 2016-08-28
        • 2021-04-25
        • 2021-04-23
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多