🧹 Kontaktliste Doppel Clean – Pandas CSV-Deduplizierung

Doppelte Kontakte automatisch erkennen und entfernen mit Python Pandas

PythonPandasCSVDatenbereinigung

🚀 Bereit für Ihre digitale Transformation?

Vereinbaren Sie ein unverbindliches Strategiegespräch

📞 02406 803 7603 ✉️ info@computerkumpel.de

📊 Business Value

Doppelte Datensätze sind der stille Killer jeder CRM-Datenbank. Dieses minimalistische aber hoch-effektive Python-Skript bereinigt CSV-Kontaktlisten in Sekunden — mit nur 7 Zeilen Code.

⏱️
Sekundenschnell
10.000+ Datensätze in unter einer Sekunde dedupliziert. Manuelle Bereinigung würde Stunden dauern.
🎯
Präzise Matching-Kriterien
Deduplizierung nach Vorname, Nachname, Straße UND Hausnummer. Kein False-Positive durch ähnliche Namen.
💪
ISO-8859-1 Support
Korrekte Behandlung deutscher Umlaute durch Encoding-Awareness (ISO-8859-1 → ISO-8859-1).
🔄
Wiederverwendbar
Einfach Spalten-Indizes anpassen — funktioniert für jede CSV mit semantischen Duplikaten.

⚙️ Wie es funktioniert

1
📥

CSV einlesen

Pandas liest die Roh-CSV mit Semikolon-Separator und ISO-8859-1 Encoding.

2
🔍

Duplikate identifizieren

drop_duplicates() prüft Spalten 12 (Vorname), 13 (Nachname), 18 (Straße), 19 (Hausnummer).

3
🧹

Bereinigen

Nur der erste Fund jedes Duplikat-Sets bleibt erhalten — alle weiteren werden verworfen.

4
💾

Saubere CSV speichern

Export als neue CSV — original Datei bleibt unberührt.

💻 Echter Code aus dem Projekt

Der komplette Code aus D:\arbeit\git\kontakliste_doppel_clean\main.py. Minimalistisch, präzise, produktiv — 8 Zeilen, die tausende Duplikate eliminieren.

🐼 Vollständiges Skript (main.py — alle 8 Zeilen)

import pandas as pd

# CSV-Datei einlesen mit Semikolon-Trenner & ISO-Kodierung
df = pd.read_csv('Kontaktpersonen.csv',
    sep=';', header=None, encoding='ISO-8859-1')

# Duplikate anhand Spalten 12,13,18,19 entfernen
df_unique = df.drop_duplicates(
    subset=[12, 13, 18, 19])
#    Vorname, Nachname, Straße, Hausnummer

# Ergebnis in neue CSV speichern
df_unique.to_csv('Kontaktpersonen_einzigartig2.csv',
    sep=';', header=False, index=False,
    encoding='ISO-8859-1')

📊 Vorher/Nachher Vergleich

# Vor der Bereinigung:
# Kontaktpersonen.csv → z.B. 5.000 Zeilen mit Duplikaten

# Nach der Bereinigung:
# Kontaktpersonen_einzigartig2.csv → z.B. 3.200 Unique-Einträge

# Reduktion: ~36% weniger Datensätze
# Zeitaufwand: <1 Sekunde für 5.000 Zeilen

🔄 Anpassung an eigene CSV-Strukturen

# Eigene Spalten-Indizes anpassen:
df_unique = df.drop_duplicates(
    subset=[2, 4, 7])  # z.B. E-Mail, Telefon, Firma

# Anderes Encoding:
df = pd.read_csv('daten.csv', encoding='UTF-8')

# Anderer Separator:
df = pd.read_csv('daten.csv', sep=',')  # Komma statt ;

💻 Tech-Stack

🐍
Python 3
Minimale Laufzeitumgebung mit einer Dependency.
🐼
Pandas
drop_duplicates() — eine Zeile ersetzt 100 Zeilen manueller Logik.
📊
CSV Processing
Semikolon-separiert, ISO-8859-1 für deutsche Umlaute.

🚀 Saubere Daten = bessere Entscheidungen

📞 02406 803 7603 ✉️ info@computerkumpel.de

🎯 Strategische Erkenntnisse

🔐

Datenqualität > Datenmenge

36% weniger Datensätze nach Bereinigung — aber 100% valide. Jeder gelöschte Duplikat ist ein verhinderter Fehler in der Kundenansprache.

Eine saubere Datenbank mit 3.200 Einträgen ist mehr wert als 5.000 mit Duplikaten.

📈

Weniger Code = weniger Bugs

8 Zeilen Python vs. 200 Zeilen manuelle Logik. Pandas ist seit 2008 erprobt — Ihr selbstgeschriebener Dedup-Algorithmus nicht.

Nutzen Sie Libraries. Jede selbstgeschriebene Zeile ist ein potenzieller Bug.

🔧

Keep Original — Save Clean

Das Skript überschreibt nie die Originaldatei. Kontaktpersonen.csv bleibt unberührt, das Ergebnis heißt _einzigartig2.csv.

Immer Source und Target trennen. Ein Rollback muss jederzeit möglich sein.

👥

Encoding ist keine Nebensache

ISO-8859-1 konsistent in Input und Output beibehalten. Ein Encoding-Mismatch zerstört Umlaute — und damit die Matching-Qualität.

Encoding-Fehler sind silent — man merkt sie erst, wenn es zu spät ist.

Ihre Datenbanken bereinigen lassen?

Als Brückenbauer zwischen Business und Technik unterstütze ich Sie bei Datenbereinigung und -aufbereitung — pragmatisch, ergebnisorientiert, ohne Berater-Bullshit.

📞 Jetzt anrufen ✉️ E-Mail senden