dataviz dataviz - 2 months ago 18
Python Question

create matrix structure using pandas

I have loaded the below CSV file containing code and coefficient data into the below dataframe 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")


giving

ITEM COEFFICIENT
0 A 0.5
1 B 0.4
2 C 0.3


From the above dataframe, I need to create a final dataframe as below which has a matrix structure with the product of the coefficients:

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


I am using
np.multiply
but I am not successful in producing the result.

Answer

numpy as a faster alternative

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

enter image description here


Timing

Given sample

enter image description here

30,000 rows

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

enter image description here