Verlangen halten:Pandas: zwei Datenrahmen zusammenfassen und sich nicht schneidende Daten von einem einzelnen Datenrahmen
Ich möchte eine Art und Weise zwei Datenrahmen zu fusionieren und die nicht durchschnitten von Daten aus einem spezifizierten Datenrahmen zu halten.
Problem:
Ich habe doppelte Daten und ich erwartete, diese Zeile, die doppelten Daten zu entfernen:
final_df = new_df[~new_df.isin(previous_df)].dropna()
Beispieldaten und Daten-Test:
record = Record(1000, 9300815, '<redacted type>', '<redacted id>')
test_df = pd.DataFrame([record])
if not final_df.empty:
# this produces an empty data frame
empty_df = test_df[test_df.isin(final_df)].dropna()
# this produces the record
record_df = final_pdf[final_pdf.col01 == record.col01]
Hintergrund:
Ich lade XML-Daten und konvertiere die XML-Datei in mehrere verschiedene reco rd types als namedtuples. Ich spalte jeden Datensatztyp in seinen eigenen Datenrahmen. Ich vergleiche dann den aktuellen Satz von Daten aus der XML-Datei mit den Daten, die bereits in die Datenbank geladen von previous_df
als solche Konstruktion:
previous_df = pd.read_sql_table(table_name, con=conn, schema=schema, columns=columns)
Spalten werden dynamisch auf den Feldern in der genannten Tupel erstellt basiert. Das Datenbankschema wird mit Hilfe von sqlalchemy generiert, und ich habe UniqueConstraint
hinzugefügt, um zu verwalten, wenn ich glaube, dass es Dubletten in der Datenbank gibt.
Vielen Dank im Voraus für jede Hilfe zur Verfügung gestellt.
Blick auf [pandas.DataFrame.duplicated] (https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.duplicated.html#pandas-dataframe-duplicated). Wenn Sie einige Beispieldaten und die erwartete Ausgabe hinzufügen, erhalten Sie detaillierte Hilfe. –
Ich habe auch 'drop_duplicates (keep = False)' 'verwendet, was effektiv' duplicated' aufruft und sie dann in einer einzigen Zeile entfernt. Ich brauche wirklich eine gute Möglichkeit, zwei Datenrahmen zusammenzuführen und deren Schnittpunkt zu entfernen. –
Ich würde empfehlen, [Pandas Dokumentation] (https://pandas.pydata.org/pandas-docs/stable/merging.html) zum Zusammenführen von Datenrahmen zu sehen. Ich sehe nicht genau, wohin Sie gehen möchten, aber Sie können dort eine Lösung für Ihr Problem finden –