Pandas: so führen sie spalten mit demselben namen zusammen
Sie können die folgende grundlegende Syntax verwenden, um Spalten in einem Pandas-DataFrame zusammenzuführen, die denselben Spaltennamen haben:
#define function to merge columns with same names together def same_merge (x): return ' , '. join (x[ x.notnull ()]. astype (str)) #define new DataFrame that merges columns with same names together df_new = df. groupby (level= 0 , axis= 1 ). apply ( lambda x: x.apply (same_merge,axis= 1 ))
Das folgende Beispiel zeigt, wie diese Syntax in der Praxis verwendet wird.
Beispiel: Spalten mit demselben Namen in Pandas zusammenführen
Angenommen, wir haben den folgenden Pandas-DataFrame:
import pandas as pd import numpy as np #createDataFrame df = pd. DataFrame ({' A ': [5, 6, 8, np.nan, 4, np.nan, np.nan], ' A1 ': [np.nan, 12, np.nan, 10, np.nan, 6, 4], ' B ': [2, 7, np.nan, np.nan, 2, 4, np.nan], ' B1 ': [5, np.nan, 6, 15, 1, np.nan, 4]}) #rename columns so there are duplicate column names df. columns = [' A ', ' A ', ' B ', ' B '] #view DataFrame print (df) AABB 0 5.0 NaN 2.0 5.0 1 6.0 12.0 7.0 NaN 2 8.0 NaN NaN 6.0 3 NaN 10.0 NaN 15.0 4 4.0 NaN 2.0 1.0 5 NaN 6.0 4.0 NaN 6 NaN 4.0 NaN 4.0
Beachten Sie, dass zwei Spalten den Namen „A“ und zwei Spalten den Namen „B“ tragen.
Wir können den folgenden Code verwenden, um Spalten mit denselben Spaltennamen zusammenzuführen und ihre Werte mit einem Komma zu verketten:
#define function to merge columns with same names together def same_merge (x): return ' , '. join (x[ x.notnull ()]. astype (str)) #define new DataFrame that merges columns with same names together df_new = df. groupby (level= 0 , axis= 1 ). apply ( lambda x: x.apply (same_merge,axis= 1 )) #view new DataFrame print (df_new) AB 0 5.0 2.0,5.0 1 6.0,12.0 7.0 2 8.0 6.0 3 10.0 15.0 4 4.0 2.0,1.0 5 6.0 4.0 6 4.0 4.0
Der neue DataFrame hat Spalten mit demselben Namen zusammengeführt und ihre Werte mit einem Komma verkettet.
Wenn Sie ein anderes Trennzeichen verwenden möchten, ersetzen Sie einfach das Komma-Trennzeichen durch etwas anderes in der Funktion same_merge() .
Der folgende Code zeigt beispielsweise, wie stattdessen ein Semikolon-Trennzeichen verwendet wird:
#define function to merge columns with same names together def same_merge (x): return ' ; '. join (x[ x.notnull ()]. astype (str)) #define new DataFrame that merges columns with same names together df_new = df. groupby (level= 0 , axis= 1 ). apply ( lambda x: x.apply (same_merge,axis= 1 )) #view new DataFrame print (df_new) AB 0 5.0 2.0;5.0 1 6.0;12.0 7.0 2 8.0 6.0 3 10.0 15.0 4 4.0 2.0;1.0 5 6.0 4.0 6 4.0 4.0
Der neue DataFrame hat Spalten mit demselben Namen zusammengeführt und ihre Werte mit einem Semikolon verkettet.
Zusätzliche Ressourcen
In den folgenden Tutorials wird erläutert, wie andere gängige Vorgänge in Pandas ausgeführt werden:
So entfernen Sie doppelte Spalten in Pandas
So listen Sie alle Spaltennamen in Pandas auf
So sortieren Sie Spalten in Pandas nach Namen