2017-06-15 14 views
0

Suchen Sie nach einer bequemen Möglichkeit, bestimmte Zeilen eines Datenrahmens in einem neuen Datenrahmen zu speichern, wenn die Zeile einigen externen Kriterien entspricht.Zeilen für neuen Datenrahmen aus bestehendem Datenrahmen ziehen python pandas

Ich habe einen Datenrahmen (df), der Datensätze enthält, die ich für eine interne Datenbank ausgeführt habe. Manchmal funktioniert die Abfrage und manchmal nicht. Ich möchte die Zeilen speichern, die Ausnahmen verursachen. Der neue Datenrahmen sollte die gleiche Struktur wie der ursprüngliche haben. Ich habe den ganzen Morgen verschiedene Lösungen getestet, aber nichts scheint zu funktionieren. Meine aktuellen Code sieht in etwa wie folgt aus:

cols=['recordID','linkID','date'] 
    dfNew = pd.DataFrame(columns = cols)  

    for index, row in df.iterrows(): 
     try: 
      updateStatement = """ 
      EXEC dbo.storedProc 
       @recordID = {0}, 
       @linkID = {1}, 
       @date = '{2}', 
      """.format(row.recordID, row.LinkID, row.date)  
      cursor.execute(updateStatement) 

     except Exception as e: 
      lst = ({'recordID':row.recordID,'linkID':row.linkID,'date':row.date}) 
      dfexcept = dfexcept.append(lst, ignore_index=True) 

In meiner jetzigen Situation, es gibt mir eine Tabelle, die Werte (Funktionen wie ‚print()‘ und ‚len()‘ Rückkehr erwartete Ergebnisse) hat aber spezifische Funktionen zu Dataframes (merge(), .head()) funktionieren nicht, und wenn Sie aufgefordert werden, 'dfexcept' zurückzugeben, wird 'leeres DataFrame' angezeigt.

Kurz gesagt, ich weiß, dass etwas nicht stimmt, aber nicht was. Ich versuche, Zeilen zu speichern, die Ausnahmen auslösen, aber ich vermute, dass die Art und Weise, wie ich den DataFrame erstelle, Probleme verursacht (ich dachte, eine Wörterbuchliste zu erstellen, war mir seltsam, aber sie hat mir das gewünschte Verhalten am nächsten gebracht) .

Wie kann ich Zeilen (normalerweise) in einem neuen Datenrahmen speichern? Vielen Dank im Voraus für die Hilfe!

Antwort

0

Nun können Sie eine Slicing-Technik verwenden, wo Sie die Zeile, die Sie brauchen, in Scheiben schneiden und in einen anderen Datenrahmen einfügen können. Die folgende Syntax wird angezeigt:

Df_new = Df_old.iloc ['start_name_of_row': 'ending_name_of_row']

Verwandte Themen