2017-06-27 4 views
1

Ich bin komfortabel mit Python/Excel/Pandas für meine Datenrahmen. Ich kenne SQL oder Datenbanksprachen nicht.Python Pandas große Datenbank mit Excel

Ich stehe kurz vor einem neuen Projekt mit rund 4000 verschiedenen Excel-Dateien, die ich habe. Ich rufe an, um die Datei als Datenframe für alle 4000 Dateien geöffnet zu haben, und mache dann meine Berechnungen an ihnen. Dies beinhaltet viele Berechnungen wie Summe, lineare Regression und andere normale Werte.

Meine Frage ist, ich weiß, wie man das mit 5-10 Dateien kein Problem macht. Werde ich ein Problem mit dem Speicher oder der Programmierung haben, die Stunden dauern wird? Die Dateien sind um 300-600kB. Ich benutze keine Funktionen in Excel nur Daten halten. Wäre es besser, 4.000 einzelne Dateien oder 4.000 Tabs zu haben. Oder kann ein Computer problemlos damit umgehen? Vielen Dank, dass Sie sich angeschaut haben, haben noch nicht mit vielen Daten gearbeitet und würden gerne wissen, ob ich wirklich versaut habe, bevor ich anfange.

Antwort

2

Sie möchten auf jeden Fall eine Datenbank verwenden. Bei fast 2 GB Rohdaten können Sie nicht zu viel tun, ohne Ihren Computer zu ersticken, selbst das Einlesen würde eine Weile dauern.

Wenn Sie sich mit Python und Pandas wohl fühlen, garantiere ich Ihnen, dass Sie SQL sehr schnell lernen können. Die grundlegende Syntax kann in einer Stunde erlernt werden und Sie werden nicht bereuen, es für zukünftige Jobs zu lernen, es ist eine sehr nützliche Fähigkeit.

Ich würde empfehlen, dass Sie lokal installieren und dann SQLAlchemy verwenden, um eine Verbindung herzustellen, um eine Datenbankverbindung (oder Engine) zu erstellen. Dann werden Sie glücklich sein zu hören, dass Pandas tatsächlich df.to_sql und pd.read_sql hat, was es wirklich einfach macht, Daten zu pushen und zu ziehen, wie Sie es brauchen. Auch SQL kann jede grundlegende mathematische wollen Sie wie Summieren, Zählen usw.

anschließen und zu einer SQL-Datenbank schreiben, ist so einfach wie:

from sqlalchemy import create_engine 
my_db = create_engine('postgresql+psycopg2://username:[email protected]:5432/database_name') 
df.to_sql('table_name', my_db, if_exists='append') 

ich die letzten if_exists = ‚append‘, weil du‘hinzufügen Ich möchte alle 4000 zu einer Tabelle am wahrscheinlichsten hinzufügen.

+0

Vielen Dank für Ihre Hilfe und Richtung. – Atropos

Verwandte Themen