2017-10-25 2 views
0

Ich versuche, doppelte Spaltenwerte in meinem Dataframe zu entfernen.Python Pandas entfernen doppelte Code funktioniert nicht

Mein Code ist wie unten

xls = pd.ExcelFile('Base File.xlsx'); 

mapping_df = xls.parse('Mapping'); 
engagement_data_df = xls.parse('Detail Report'); 
engagement_data_df =engagement_data_df.loc[:,~engagement_data_df.columns.duplicated()] 

Ich habe 2 doppelte Spalten namens 'BCS angebaute Flag'. Ich habe versucht, die Spalten mit dem obigen Code zu deduplizieren, aber kein Glück. Kann ich fragen, was ich falsch mache?

Adrian

Edit: Es scheint, dass die doppelte Spalte ein 0,1 hinter angebracht anhängt, sondern in der CSV-Datei sowohl die Spalten als BCS angebaute Flags sind. Ich habe einen Druck (engagement_data_df.head (10))

Division Region BCS Attached Flag BCSAttached Flag.1 
China China A Y     Y  
Singapore Singapore B Y   Y 
+0

Was mit 'drop_duplicates falsch ist()'? Edit: Oh, die Spaltennamen sind doppelt vorhanden! –

+0

Hallo, das funktioniert für eindeutige Zeile nicht Spalten – Adam

+0

Was bekommen Sie jetzt? –

Antwort

1

Ich glaube, Sie ersten Extrakt Text benötigen nur dann duplicated nennen:

m = ~engagement_data_df.columns.str.extract('([a-zA-Z]+)', expand=False).duplicated() 
engagement_data_df = engagement_data_df.loc[:, m] 
+0

HI alle, ich schaffte es, es auf eine andere Weise zu lösen Im Grunde ist mir klar, dass dies ein ETL ist und ich brauche nur Division Region, habe eine Reihenfolge meiner Spalten gemacht (engagement_data_df = engagement_data_df [order_columns_df];) und die Spaltenüberschriften gekappt, die ich brauche und dann entfernte ich sie.Ein langer Weg, aber es hat funktioniert. – Adam

+0

Ja, es ist eine andere Lösung.Aber in Ihrer Frage Sie asj über deduplizierte Spalten und ich denke meine Antwort mach es;) – jezrael

Verwandte Themen