Seite 1 von 1

Zwei CSV vergleichen

Verfasst: Samstag 27. September 2025, 23:16
von DominikD50
Hallo

würde gerne 2 csv auf Änderungen vergleichen.
Es könnne Zeilen dazu kommen wegfallen oder anders sortiert sein
Die Datei hat keine Überschrift.
Spalte C soll die gemeinsame sein und dann D und E auf unterschiede verglichen werden und dann in csv ausgegeben werden
Ist in der alten eine Zeile da und in der neuen nicht egal
Ist in der neuen eine da dann Ausgabe in Datei
Kann mir hier jemand helfen?
Danke

Re: Zwei CSV vergleichen

Verfasst: Sonntag 28. September 2025, 18:44
von imonbln
Mir ist nicht ganz klar, wie die Datei am Ende aussehen soll, aber das macht, denke ich nichts. Denn das Forum ist ja Hilfe zu selbst Hilfe. 

Deine Schritte sollten also ganz grob sein, beide CSV Dateien einlesen, beide nach Spalte C Sortieren,
dann durch die neue Tabelle durch Iterieren, jeweils Prüfen, ob der Wert von Spalte C auch in der alten vorhanden ist. Wenn ja, dann vergleich von D und E machen, das Ergebnis Speichern, wenn nicht, ist es ein neuer Eintrag.

Happy Coding und wenn Du konkrete Probleme hast und etwas Code zeigst (Codetags nicht vergessen), können wir, Dir sicher weiter helfen.

Re: Zwei CSV vergleichen

Verfasst: Mittwoch 1. Oktober 2025, 02:54
von Pedroski55
Was steht in Spalte C? Eine Zahl? Schriftliches? Wenn Zahl, dann sollte man immer jeweils in csv1 und csv2 die gleichen Zahlen finden, danach Spalten D und E vergleichen, falls unterschiedlich, die Zeilen exportieren.

Wie lange sind die csvs? Millionen von Einträgen? Schon wieder ein Börsenguru?

Besser wenn du von jeder CSVdatei ein kleines Beispiel hier hinterlegst, dann hätte man erst einen Überblick.

Re: Zwei CSV vergleichen

Verfasst: Mittwoch 1. Oktober 2025, 18:34
von mechanicalStore
Guck dir das Pandas Modul an. Deine Aufgabe kriegst du mit ein paar Zeilen Code hin.

Re: Zwei CSV vergleichen

Verfasst: Mittwoch 8. Oktober 2025, 11:13
von oldboyJR
Es gibt ein csv Modul ggf nachladen (adminrechte nötig).Immer die passenden syntax der version beachten. paralel beide öffnen vergleichen

Re: Zwei CSV vergleichen

Verfasst: Mittwoch 8. Oktober 2025, 11:16
von __blackjack__
@oldboyJR: Das `csv`-Modul ist in der Standardbibliothek, da muss man nichts ”nachladen” und es sind keine Adminrechte nötig.

Re: Zwei CSV vergleichen

Verfasst: Mittwoch 8. Oktober 2025, 11:25
von oldboyJR
Adminrechte sind nur notwendig wenn man Module die nicht vorhanden sind laden möchte oder wenn es durch anderes freigeschaltet ist.

Re: Zwei CSV vergleichen

Verfasst: Mittwoch 8. Oktober 2025, 11:31
von sparrow
@oldboyJR: Das ist so nicht richtig.

Re: Zwei CSV vergleichen

Verfasst: Mittwoch 8. Oktober 2025, 14:55
von __blackjack__
@oldboyJR: Module entstehen nicht auf magische Weise wenn man Adminrechte hat. Nicht vorhandene Module müsste man installieren. Dazu braucht man aber nicht zwangsläufig Adminrechte. Man kann Module auch für den aktuellen Benutzer installieren, oder in ein venv.

Umgekehrt kann es auch bei einem Programm für das alle Module vorhanden sind, für das Ausführen des Programms Adminrechte braucht, wenn das Programm selber irgendetwas macht, das diese Rechte benötigt.

Re: Zwei CSV vergleichen

Verfasst: Sonntag 12. Oktober 2025, 15:56
von avivadee
Hallo! Auch wenn der Beitrag schon älter ist: Für so einen Vergleich kannst du Python und das Modul pandas verwenden. Du liest beide CSV-Dateien ein, nutzt Spalte C als Schlüssel und vergleichst D und E. Unterschiede kannst du dann herausfiltern und wieder in ein neues CSV schreiben. Wenn du magst, kann ich dir gern ein passendes Skriptbeispiel geben!

Re: Zwei CSV vergleichen

Verfasst: Sonntag 19. Oktober 2025, 00:48
von oldboyJR
Im Grunde ist es wie in allen Datenbanken so auch in Panda. Grundvoraussetzung zwei CSV mit selben Überschriften. In Panda die beiden Daten laden dann zu einer verknüpfen sortieren nach spalten und dann alles bereinigen. https://www.datacamp.com/de/tutorial/pandas. Man kann das auch gut mit Mysql in Xampp erledigen denn die interne Server Variante beherscht den CSV import wie auch den export Einfach alles in eine Tabelle importieren ,sortieren, noch eine spalte hinzufügen die Boolwerte generiert, und diesen Sortieren, um den festgestelten doppeleintrag löschen

Re: Zwei CSV vergleichen

Verfasst: Sonntag 19. Oktober 2025, 00:54
von oldboyJR
Das bereinigen mit dem Befehl ist mir noch nicht ganz klar. Ich probiere noch

Re: Zwei CSV vergleichen

Verfasst: Sonntag 19. Oktober 2025, 09:13
von mechanicalStore
@oldboyJR:
Ein Panda ist ein niedliches Tierchen aus China. Pandas ist eine Python Bibliothek und keine Datenbank. Der TE schreibt, dass die csv keine Überschriften haben. Für diese Aufgabe ist eine Xampp Installation ein exorbitaler, absolut unnötiger Aufwand. Das „bereinigen“ ist unnötig, das kann man alles in einem Befehl erledigen.
Das von dir verlinkte Tutorial ist sehr schwammig, erklärt nicht das wesentliche, und hat teilweise Fehlinformationen. Hier sei dringend auf die original Doku verwiesen. Da gibt es auch Tutorials, Z.b.:

https://pandas.pydata.org/docs/getting_ ... index.html

Re: Zwei CSV vergleichen

Verfasst: Montag 20. Oktober 2025, 10:57
von oldboyJR
Ok man kann beides in Pandas (panda haha) laden und verbinden wenn die Überschriften gleich sind. Pandas braucht die Überschriften sonst funktioniert nicht das verknüpfen.

Code: Alles auswählen

df = pd.read_csv("listeprobe1.csv")#importiere in Panda als df
da = pd.read_csv("listeprobe2.csv")#importiere in Panda als da
data = pd.concat([da,df]) #mach aus zwei eine datei data
Das (droppen)mit

Code: Alles auswählen

data_no_dupes_name = data.drop_duplicates(subset=['Vorname'], keep='last')
funktioniert nur mit der Variable data obwohl df auch ein DataFrame ist!!
Die Verknüpfung z.B. zu einer DataFrame variable df3

Code: Alles auswählen

df3 = pd.concat([da,df]) #mach aus zwei eine datei data
stellt nicht die Funktion

Code: Alles auswählen

data.drop_duplicates(subset=['Vorname'], keep='last')
zur verfügung. Auf jeden Fall nicht in meiner Conda spider version . Mein endgültiges Programm stellt explizit also die variable "data" her. sieht deshalb so so aus

Code: Alles auswählen


import pandas as pd
import numpy


df = pd.read_csv("listeprobe1.csv")#importiere in Panda als df
da = pd.read_csv("listeprobe2.csv")#importiere in Panda als da
data = pd.concat([da,df]) #mach aus zwei eine datei data

#dienächsten fünf zeilen stammen aus copilot
#for data in df3:
#data = {
#"name": ["Sally", "Mary", "John", "Mary"],
#"age": [50, 40, 30, 40],
#"qualified": [True, False, False, False]
#}
data = pd.DataFrame(data)

print("Original DataFrame:")
print(data)

# --- Remove duplicates ---
# Keep the first occurrence (default)
data_no_dupes = data.drop_duplicates()

print("\nAfter drop_duplicates (keep='Vorname'):")
print(data_no_dupes)

# --- Remove duplicates based on specific columns ---
data_no_dupes_name = data.drop_duplicates(subset=['Vorname'], keep='last')

print("\nAfter drop_duplicates on 'Vorname' (keep='last'):")
print(data_no_dupes_name)

# --- Remove duplicates in-place ---
data.drop_duplicates(inplace=True, ignore_index=True)

print("\nIn-place removal with reindexing:")
print(data)

Re: Zwei CSV vergleichen

Verfasst: Montag 20. Oktober 2025, 16:07
von mechanicalStore
Das alles zu kommentieren wäre sinnlos...

Der größte Unsinn ist das:

Code: Alles auswählen

data = pd.DataFrame(data)