J'ai un Dataframe, en fonction de ces colonnes existantes, je souhaite créer une nouvelle colonne. mais, je ne veux pas écrire toutes les colonnes (> 900 colonnes).
Si j'y vais un à un, ce serait comme ça, p>
Comment puis-je itération et créer de nouvelles colonnes?
Merci d'avance! P> p>
3 Réponses :
Vous pouvez parcourir les différents noms de colonnes et effectuer les opérations Vous pouvez ajouter le reste des opérations trop dans la même boucle. P> espère qu'il aide p> < / p> +1 code> et les opérations code>. Lorsque vous utilisez df.columns code>, vous recevez ensuite une liste des différents en-têtes de colonne. Vous pouvez donc faire quelque chose comme ceci par exemple:
Voici une version nettoyée de ce que je pense que vous essayez de faire:
# Include only variables with the "column" stub
cols = [c for c in df.columns if 'column' in c]
for i, c in enumerate(cols):
a = f"A{i+1}"
df[a] = 1 + df.loc[df[c] > 0.1, 'foo'].rank(ascending=False)
df[f'log_{a}'] = np.log(df[a]).fillna(value=0)
Il ne remplit pas 0 dans df [a] code> colonnes. Comment puis-je résoudre ce problème?
Vous n'en avez pas besoin parce que le journal de 1 est zéro
Vous pouvez simplement faire:
foo column1 column2 A1 new_A1 log_A1 A2 new_A2 log_A2 0 5 0.80 0.01 5.0 6.0 1.791759 0.0 0.0 0.000000 1 10 0.90 0.01 3.0 4.0 1.386294 0.0 0.0 0.000000 2 15 0.20 1.20 2.0 3.0 1.098612 2.0 3.0 1.098612 3 8 0.12 0.50 4.0 5.0 1.609438 3.0 4.0 1.386294 4 74 0.78 0.70 1.0 2.0 0.693147 1.0 2.0 0.693147