-6
votes

Comment combiner plusieurs colonnes dans Python

Je veux combiner toutes les 5 colonnes dans le fichier de données Python de sorte que 1-5 soient combinés, 6-10 sont combinés, etc.

df ressemble à xxx

et voulez par exemple xxx


3 commentaires

Bienvenue, Jordanie. Veuillez fournir un exemple minimal, complet et vérifiable


Que voulez-vous faire avec les valeurs? somme? enchaîner? liste?


les valeurs concaténées


3 Réponses :


3
votes

mise à jour: xxx

sortie: xxx


Essayez: xxx

sortie: xxx

explication:

Utilisez get_loc méthode de pd.dataframe.columns pour obtenir l'emplacement de l'index de chaque colonne avec carte .

Ensuite, utilisez \\ (floordiiv) de 5 pour grouper des colonnes en groupes de 5.

avec groupby et paramètre Axis = 1 , nous pouvons Somme , concaténer les valeurs de chaîne dans chaque groupe. Ensuite, jetez les résultats en tant qu'Éteger, en utilisant astype pour se débarrasser du zéro décimal.


3 commentaires

Existe-t-il un moyen de le faire mais ignorer la première colonne de sorte qu'il ne reste pas concaténé et commencez par la colonne 2


Déplacez la première colonne dans l'index puis exécutez la même commande.


@Scottboston explique ce que faire votre code



0
votes

Nulle part aussi soigné que ci-dessus, mais pourrait essayer ceci:

for i in enumerate(np.array_split(df.columns.tolist(), np.ceil(len(df.columns)/5))):
        df['combo'+str(i[0])] = df[i[1]].apply(lambda x: ','.join(x.dropna().astype('unicode')), axis=1)


0 commentaires

0
votes

Pour faire votre tâche, procédez comme suit:

Obtenez la liste des noms de colonne: xxx

créer de mappage pour le regroupement. Les colonnes cibles seront c0 , c1 , ...: xxx

définir la fonction de jonction (convertir une série de int à une série de str et de les concaténer: xxx

et enfin, exécutez votre jointure: xxx < P> Pour but de démonstration, j'ai créé le test Dataframe comme: xxx

Le résultat était le suivant: xxx


0 commentaires