dat*_*viz 5 python numpy dataframe pandas
我已将包含代码和系数数据的以下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")
Run Code Online (Sandbox Code Playgroud)
给予
ITEM COEFFICIENT
0 A 0.5
1 B 0.4
2 C 0.3
Run Code Online (Sandbox Code Playgroud)
从上面的数据帧中,我需要创建一个如下所示的最终数据帧,该数据帧具有一个矩阵结构,其系数乘积为:
A B C
A 0.25 0.2 0.15
B 0.2 0.16 0.12
C 0.15 0.12 0.09
Run Code Online (Sandbox Code Playgroud)
我正在使用,np.multiply但无法成功产生结果。
您想在向量及其转置之间进行数学运算。在两个数据帧之间转置.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
Run Code Online (Sandbox Code Playgroud)
numpy是一种更快的选择
pd.DataFrame(np.outer(df, df), df.index, df.index)
Run Code Online (Sandbox Code Playgroud)
给定样本
30,000行
df = pd.concat([df for _ in range(10000)], ignore_index=True)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5154 次 |
| 最近记录: |