ich habe ein dataframe mit ausschließlich Zahlen vorliegen.
Nun möchte ich Spalten mit nur einem Wert löschen.
Habe einen funktionierenden code geschrieben, der braucht jedoch sehr lange.
Ich habe auch gehört, dass man keine for schleifen nutzen sollte mit pandas.
Habt ihr vielleicht Verbesserungsvorschläge

Code: Alles auswählen
sp_a = df.shape[1] # Spaltenanzahl
z1=0
gel_sp = 0 # gelöschte Spalten Anzahl
for i in range (sp_a): # for Schleife zählt....
c= i + (sp_a-1) -z1 #
z1 += 2 # ......hier rückwärts mit laufindex c
if len(df.iloc[:,c].value_counts(dropna=False))==1: # Bedingung: max. Ausprägung = 1
sp_n= df.columns[c] # Spaltenname
del df[sp_n]
gel_sp+=1
print(gel_sp,' Spalten wurden gelöscht, weil nur eine Ausprägung !')
Viele Grüße