vorab: tolles Forum. Lasse mich wohl demnächst häufiger hier sehen.
Mein Problem:
Will viele CSV-Dateien FAST gleichen Inhalts in ein Pandas Dataframe einlesen.
Problem ist, dass
1. in einigen Dateien die Spalte (gleichen Inhalts) einen anderen Namen hat. (siehe unten "Geburtstag" // "Geburtsdatum" )
2. es nur in einigen wenigen Dateien zusätzliche Spalten gibt, die ich trotzdem dem Dataframe hinzufügen will. (siehe unten "Sternzeichen" Nur in CSV1)
3. es in einigen Dateien zwei unterschiedliche Spalten für den gleichen Inhalt gibt (und mal die eine Spalte, mal die andere Spalte gefüllt ist. siehe CSV2: Lieblingsfarbe // Farbe_die_derjenige_mag)
Da in den betroffenen Dateien immer abwechselnd die Spalte gefüllt ist, könnten diese zu einer Spalte zusammengefasst werden.
Beispiel:
CSV 1
Name Vorname Geburtsdatum Sternzeichen Lieblingsfarbe Unwichtig1 Unwichtig2 Unwichtig3 ...
1
2
3
4
CSV 2
Name Vorname Geburtstag Lieblingsfarbe Farbe_die_derjenige_mag Unwichtig1 Unwichtig2 Unwichtig3 ...
1
2
3
4
Im Code sieht das dann so aus:
Mit "usecols" meckert Python bei Problem 1 und 2, dass es die jeweilige Spalte nicht gibt.
Code: Alles auswählen
import os
import glob
import pandas as pd
import numpy as np
df = pd.concat([pd.read_csv(f,
sep=';',
encoding="ISO-8859-1",
header = 0,
usecols=['Name', 'Vorname', Geburtsdatum', 'Geburtstag', 'Lieblingsfarbe', 'Farbe_die_derjenige_mag', 'Sternzeichen']
)
for f in glob.glob('*mit_b*.csv')], ignore_index= True)
print(df)
Konnte bisher nix dazu finden.
Danke