2016-04-26 15 views
0

Ich habe ein Wörterbuch (data_final) von Datenrahmen (Gesundheit, Bildung, Wirtschaft, ...). Die Datenrahmen enthalten Daten aus einer xlsx-Datei. In einem der Datenrahmen (Economy) sind den Spaltennamen Klammern und einfache Anführungszeichen hinzugefügt.Entfernen von Sonderzeichen aus Spaltenüberschriften

data_final['economy'].columns = 
Index([        ('Sr.No.',), 
           ('DistrictName',), 
            ('Agriculture',), 
          ('Forestry& Logging',), 
             ('Fishing',), 
          ('Mining &Quarrying',), 
          ('ManufacturingMFG.',), 
           ('RegisteredMFG.',), 
           ('Unregd. MFG.',), 
        ('Electricity,Gas & W.supply',), 
           ('Construction',), 
        ('Trade,Hotels& Restaurants',), 
            ('Railways',), 
         ('Transportby other means',), 
             ('Storage',), 
           ('Communication',), 
          ('Banking &Insurance',), 
     ('Real, Ownership of Dwel. B.Ser.& Legal',), 
         ('PublicAdministration',), 
           ('OtherServices',), 
            ('TotalDDP',), 
          ('Population(In '00)',), 
         ('Per CapitaIncome(Rs.)',)], 
     dtype='object') 

ich keine Spalte

data_final['economy']['('Construction',)'] 

referenzieren gibt Fehler -

SyntaxError: invalid syntax 

Ich habe versucht, ersetzen zu verwenden, um die Klammern zu entfernen -

data_final['economy'].columns = pd.DataFrame(data_final['economy'].columns).replace("(","",regex=True)) 

Aber das tut entferne den Fehler nicht Spaltennamen. Wie kann ich all diese Sonderzeichen aus den Spaltennamen entfernen?

+0

Ich bin nicht wirklich vertraut mit Datenrahmen, aber '' ('Construction') '' ist keine gültige Syntax, da Sie normalerweise keine Anführungszeichen in einem String-Literal haben, die mit den Anführungszeichen übereinstimmen . Was passiert, wenn Sie stattdessen "" ("Construction \",) "" oder "" ("Construction", "") wählen? – Kevin

Antwort

3

Es sieht so aus, als ob Ihre Spaltennamen als tuples importiert/erstellt werden. Was passiert, wenn Sie sie versuchen, und verweisen auf die Klammern zu entfernen, sondern ein Komma am Ende, wie so

data_final['economy']['Construction',] 

oder sogar mit den Klammern

data_final['economy'][('Construction',)] 
+0

das hat tatsächlich funktioniert !! Danke vielmals! Aber ich kann nur eine Spalte referenzieren, nachdem ich am Ende ein Komma hinterlassen habe - data_final ['economy'] ['Construction',] Wie kann ich mehrere Spalten referenzieren.Ein Komma lässt sich nicht für mehrere Spalten referenzieren - data_final [' Wirtschaft '] [' Konstruktion ',' Lagerung ',] KeyError: (' Construction ',' Storage ') –

+0

Ich fürchte, ich benutze keine Datenframes, um zu wissen, ob das möglich ist, aber mein Bauch sagt nicht so sieht so aus, als ob die Spalten Python-Wörterbücher verwenden. Möglicherweise müssen Sie die Spalten separat und nicht alle in einem Treffer abrufen (obwohl es möglicherweise eine andere Möglichkeit gibt, auf mehrere Spalten zuzugreifen, die mir nicht bekannt sind). –

0

Die Syntaxfehler verlassen sollte mit der Leitung zusammenhängen

('Population(In '00)',), 

Die Zeichenfolge enthält ein einfaches Anführungszeichen, das normalerweise das Ende der Zeichenfolge markieren würde. Wenn Sie eine in einer Zeichenfolge verwenden möchten, müssen Sie sie um " von Escape als \' umgeben. Rsulting in einer Zeile wie:

('Population(In \'00)',), 

Das gleiche Problem auf Ihren eigentlichen Aufruf gilt, haben Sie die Anführungszeichen auch dort zu entkommen.

Verwandte Themen