2017-02-11 2 views
-1

Ich versuche etwas zu tun, das einfach sein sollte ... aber es funktioniert nicht. Ich denke, ich übersehe ein Fundamental, aber ich kann nicht für das Leben von mir herausfinden, was es ist.Kann eine Append-Zeichenfolge nicht auflösen, um Fehler aufzulisten

Ich habe einen Datenrahmen mit einigen Spalten nach Fragen und andere leer benannt. Ich möchte Listen zusammenstellen, die eine benannte Spalte mit den folgenden unbenannten Spalten verknüpfen und eine neue Liste erstellen, wenn die nächste benannte Spalte angezeigt wird.

Zum Beispiel mit den folgenden Spaltennamen:

Name? Age? Unnamed 1 Favourite soup? Unnamed 2 Unnamed 3 Turnip fan? 

ich suchen würde, diese Listen zu generieren: 'Alter'

  1. [ '? Name']
  2. [ 'Unbenannt 1']
  3. [ 'Lieblingssuppe?', 'Unbenannt 2', 'Unbenannt 3']
  4. [ 'Rübe Fan?']

Ich dachte, ich etwas Einfaches wie diese verwenden würde:

for col in dataframe.columns: 
    if col[:7] != 'Unnamed': 
     current_list = col 
    else: 
     current_list.append(col) 

Aber es erzeugt den Fehler AttributeError: 'str' object has no attribute 'append'. Was mache ich falsch?

+1

'current_list' ist offensichtlich nicht eine Liste ... –

+0

Wie @ cricket_007 sagte current_list ist kein' list' Objekt und 'str' Objekt hat nicht die Append-Methode, Sie können alle Methoden von 'str'objects [hier] (https://docs.python.org/2/library/stdtypes.html#string-methods) sehen –

+0

Mit anderen Worten, was denkst du' current_list = col' sollte tun? Es wird eine Liste einer Zeichenfolge zugewiesen, sieht aus wie –

Antwort

1

Sie haben eine Zeichenfolge in col. Aber Sie müssen für current_list eine Liste sein, auch wenn es nur eine Liste von einem Element ist.

Try this:

current_list = [ col ] 
+0

Wow. Das ist peinlich. Danke für die wirklich offensichtliche Lösung! – user4896331

Verwandte Themen