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

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert