Salut,

Je n'arrive pas à trouver d'exemples sur internet donc je viens ici.

Je souhaite utiliser la fonction .assign() pour faire plusieurs choses en même temps :
- Créer des colonnes
- Filtrer (sortir certaines lignes et pas d'autres)
- Renommer des colonnes
- Trier
- Et d'autres choses

Ça, je sais le faire avec Python. Je ne sais pas exactement si c'est Pandas ou pas, mais je sais le faire.

J'ai plus ou moins la même erreur quelle que soit l'action que j'ai envie de faire, alors je donne ce petit exemple :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
pdassign1.assign(
    # Numeric
    AGEM = lambda x: x['AGE']*12,
    AGED = lambda x: x['AGE']*365.25
).assign(
    pdassign1.rename(columns={'AGE':'AgEY'}, inplace=True)
)
 
display(pdassign1)
J'obtiens cette erreur :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-31-ad47a6623bf3> in <module>
      6     AGED = lambda x: x['AGE']*365.25
      7 ).assign(
----> 8     pdassign1.rename(columns={'AGE':'AgEY'}, inplace=True)
      9 )
     10 
 
TypeError: assign() takes 1 positional argument but 2 were given

Que je fais le premier assign seulement ça fonctionne, mais pas ensuite.

Ce que je veux notamment faire, et que je ne trouve pas sur internet, c'est créer une colonne à plusieurs modalités. en .assign(), je trouve des exemples pour créer des colonnes binaires True False mais ça n'est pas ce que je veux. Je voudrais appliquer la logique du ELSE IF avec une ou numpy.selec() mais je n'y arrive pas.
En parlant de ça, est-ce que vous savez si avec une fonction ROW basée sur des ELIF je peux crée plusieurs colonnes d'un coup ?
Un exemple type :
- J'ai l'âge
- Je veux créer deux variables : AGE en groupe (10-20, 21-30 etc), et une variable AGE code numérique pour associer 10-20 à 1, 21-30 à 2, etc.



J'en profite pour parler d'un autre problème que j'ai. Je copie des dataframes pour faire des modifications en conservant le DF d'origine mais quand je fais le code suivant par exemple, tmp_dm et rd_dm voient la colonne AGE renommée en AgEY. Il y a quelque chose que je n'ai pas compris encore.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
tmp_dm=rd_dm
tmp_dm.rename(columns={'AGE':'AgEY'}, inplace=True)
 
display(tmp_dm)
display(rd_dm)

Auriez-vous des pistes pour moi ?

Merci !

alers