0
votes

Comment effectuer une division sur des colonnes dynamiques dans les pandas

J'ai suivi des colonnes dans Pandas

code    nozzle_1_cumsum   nozzle_2_cumsum    nozzle_sale_cumsum  nozzle_1_perc  nozzle_2_perc 
123     10                10                 20                  0.5            0.5
123     20                10                 10                  2              1
123     10                10                 10                  1              1


2 commentaires

df.filter (regex = 'bezzzer_ \ d +'). DV (DF ['butin_sale_cumsum']. v ALS [:, NONE])


C'est me donner une erreur


3 Réponses :


1
votes

Vous pouvez créer une liste des colonnes que vous souhaitez effectuer cette action sur, puis la boucle dans la création des nouvelles colonnes chaque boucle xxx

sortie: xxx


0 commentaires

1
votes

Essayez d'ajouter Axe code> à div code>: xxx pré>

sortie: p>

df.merge(the_above_code)


5 commentaires

Vous devrez alors modifier tous les noms de colonne et ajouter ceci au df d'origine.


df.merge tel quel est une erreur, peut-être utiliser pd.concat ([df, code], axe = 1)


@Deekekeden pour ces échantillons de données, mon système ne donne aucune erreur. Bien sûr, concat fonctionne également.


df.merge (the_above_code, gauche_index = true, droite_index = true) fonctionne, je ne sais pas comment vous n'obtenez aucune erreur sans spécifier comment fusionner?


@ Dekekeden df.mérige (droite, on = aucun) utilise ensuite l'index.



-1
votes
import pandas as pd

data = pd.read_csv('your csv file.csv')
data['nozzle_1_perc']=''
data['nozzle_2_perc']=''
for i in range(0,len(data)):
    data['nozzle_1_perc'][i] = data['nozzle_1_cumsum'][i]/data['nozzle_sale_cumsum'][i]
    data['nozzle_1_perc'][i] = data['nozzle_2_cumsum'][i]/data['nozzle_sale_cumsum'][i]
data

2 commentaires

Et s'il y a 100 colonnes de buse_x_xumsum


citer Raymond Hettinger "Si vous indexez, vous le faites presque mal ou plus lent"