J'ai un dataframe comme 1 et j'essaie de créer un nouveau dataframe 2 qui consiste en des ratios de chaque colonne du dataframe ci-dessus.
J'ai essayé la logique mentionnée ci-dessous.
df_new = pd.concat([df[df.columns.difference([col])].div(df[col], axis=0)\
.add_suffix('/R') for col in df.columns], axis=1)
La sortie est:
B/R C/R D/R A/R C/R D/R A/R B/R D/R A/R B/R C/R
0 0.46 1.16 0.78 2.16 2.50 1.69 0.86 0.40 0.68 1.28 0.59 1.48
1 1.05 1.25 1.64 0.95 1.19 1.55 0.80 0.84 1.30 0.61 0.64 0.77
2 1.56 2.78 2.78 0.64 1.79 1.79 0.36 0.56 1.00 0.36 0.56 1.00
3 0.54 2.23 0.35 1.86 4.14 0.64 0.45 0.24 0.16 2.89 1.56 6.44
Cependant, j'ai deux problèmes ici. L'un est que j'obtiens à la fois A/B et B/A qui ne sont pas nécessaires et augmentent également le nombre de colonnes. Y a-t-il un moyen d'obtenir en sortie seulement A/B et éliminer/restreindre B/A.
Le deuxième problème concerne l'appel des colonnes à l'aide de la méthode add_suffix qui ne précise pas qui est divisé par qui. Existe-t-il un moyen de créer des noms de colonnes comme A/B pour la colonne A divisée par la colonne B.