2016-07-07 8 views
0

Ich versuche, Zeilen aus einem Datenrahmen zu identifizieren, die meine Datumskriterien in einem bestimmten Element erfüllen, und sie dann an einen neuen Datenrahmen anzuhängen. Ich habe die Identifikation unten, aber habe einige Schwierigkeiten, die Daten an einen neuen Datenrahmen anzufügen. "Gestern" ist eine Zeichenfolge, die das gestrige Datum enthält.Anfügen einer Zeile von einem Datenrahmen an einen neuen Datenrahmen

for x in df1.datecompare: 
     index += 1 
     if x == yesterday: 
      dfnew.append(df1.ix[index]) 

Fehler Ich bin

TypeError: append() missing 1 required positional argument: 'other' 

Vielen Dank für die Hilfe zu bekommen!

Antwort

1

IIUC, append sollte nicht notwendig sein für das, was Sie versuchen zu tun. Sie sollten es tun können mit boolean indexing:

dfnew = df1[df1.datecompare == yesterday].copy() 

Im Allgemeinen über einen Datenrahmen laufen wird viel langsamer als ein vektorisiert Betrieb zu tun, was ich oben getan habe.

+0

'Im Allgemeinen ist das Iterieren über einen Datenrahmen viel langsamer als das Ausführen eines vektorisierten Vorgangs wie dem, was ich oben getan habe '+1 – MaxU

+0

Wow, danke! Das scheint viel einfacher und einfacher! Leider bekomme ich einen Fehler "Serie nicht vektorisiert", wenn ich das versuche. – LMLPP

+0

Erhalten Sie tatsächlich einen Fehler oder nur eine Warnung? Das einzige, was ich bezüglich "Serie nicht vektorisiert" finden kann, ist eine Leistungswarnung, kein tatsächlicher Fehler. Ich kann den Fehler/die Warnung nicht reproduzieren. Es hat wahrscheinlich etwas damit zu tun, wie Sie Ihre Daten lesen. – root