0
votes

Comment créer une fonction de classe pour la fonction ASTYPE Python?

Il existe de nombreuses colonnes dans Dataframe comme: xxx

pour les données de train et test de test. Ainsi, au lieu d'écrire 20 à 30 lignes impaires pour chaque colonne en train et de test à nouveau, comment les écrire dans une fonction où nous ne pouvons passer que les noms de colonne (séparés par des virgules) et commandés comme un argument dans une fonction? < / p>

Je ne peux penser qu'à une manière: (Nouveau à la programmation) xxx

Comment faire cela pour plusieurs noms de colonne à la fois? < / p>


1 commentaires

Il existe un moyen facile de définir le type, la seule chose qui entrave est différente de commandé param.


3 Réponses :


2
votes

En réalité, votre réponse fonctionne pour plusieurs colonnes, utilisez simplement des listes au lieu de valeurs simples:

a    category
b    category
c       int32
dtype: object


2 commentaires

df.dypes de ce Dataframe DF est le suivant: un int32, B int32. Cela devrait changer de catégorie


J'ai changé ma réponse pour définir la nouvelle colonne sur le Dataframe d'origine. À l'aide de DF.DTYPES, vous pouvez voir que les types sont «catégories» pour la colonne A et B comme prévu.



1
votes

Cela peut aider

data = pd.read_excel(r"<file_location>.xlsx")
def data_type(df, as_type, ordered, *cols):
    for col in cols:
        df[col] = df[col].astype(as_type, ordered=False)
    return df

df = data_type(data, 'category', 'False', data.columns)


1 commentaires

Merci Jon, cela fonctionne aussi !. Et cela peut fonctionner sans la boucle de la fonction.!



1
votes

Si vous ne vous concentrez que sur le réglage / changement de type pour un grand nombre de colonnes (toutes les colonnes) à la fois pour plusieurs dataframes: pandas.dataframe.asType permet de passer un dict de nom de colonne -> Type de données (en tant que 1er argument): xxx


3 commentaires

Mais qu'en est-il de commandé = vrai / faux?


@Viv, c'est pourquoi j'ai mentionné si vous ne vous concentrez que sur la définition / changement de type . Vous pouvez l'utiliser comme alternative si nécessaire


Compris, merci, je vais utiliser la même syntaxe pour Fillna, Drowna, etc. Fonctions.