Das einzige, was in diesen Antworten nicht erwähnt wird, ist, dass es auch davon abhängt, wie Sie SQL verwenden. Nehmen wir zum Beispiel arcpy. Aus irgendeinem Grund verfügt keine der arcpy.da-Funktionen über eine Funktion zum Ausführen vieler Funktionen. Das ist wirklich seltsam, weil es so ziemlich jede andere Python-SQL-Bibliothek tut. Die Where-Anweisung in den Funktionen von arcpy.da ist ebenfalls auf ca. 120 Zeichen begrenzt. Dies bedeutet im Wesentlichen, dass Sie bei einer relativ hohen Anzahl von Aufgaben, die Sie mit Ihrer Datenbank ausführen möchten, die einzige echte Wahl darin bestehen, die von Ihnen gewählte arcpy.da-Funktion mehrmals aufzurufen und die where-Anweisung jedes Mal zu ändern. Es gibt ein paar Tricks, mit denen Sie diesen Prozess beschleunigen können - Sie können beispielsweise Teile Ihres Datasets durchlaufen -, aber buchstäblich ist jeder dieser Tricks viel langsamer als nur die Verwendung einer arcpy.da. Suchvorläufer, um Ihre gesamte Tabelle in einen Pandas-Datenrahmen zu laden und dann mit Pandas, Numpy und, wenn Ihre Daten wirklich so umfangreich sind, Dask zu bearbeiten. Ich muss hier betonen, dass Pandas in diesem Fall nicht nur ein bisschen schneller sind. Es ist widerlich schneller. Es ist so viel schneller, dass ich mich buchstäblich selbst ausgelacht habe, weil ich es nicht früher getan habe. Mit Pandas konnte die Ausführungszeit eines Skripts von weit über einer Stunde auf buchstäblich 12 Minuten gesenkt werden. Ich vergesse, dass dies der Sprung von 3,5 Stunden auf 1,5 Stunden war. Es ist so viel schneller, dass ich mich buchstäblich auslachte, weil ich es nicht früher getan hatte. Mit Pandas konnte die Ausführungszeit eines Skripts von weit über einer Stunde auf buchstäblich 12 Minuten gesenkt werden. Ich vergesse, dass dies der Sprung von 3,5 Stunden auf 1,5 Stunden war. Es ist so viel schneller, dass ich mich buchstäblich auslachte, weil ich es nicht früher getan hatte. Mit Pandas konnte die Ausführungszeit eines Skripts von weit über einer Stunde auf buchstäblich 12 Minuten gesenkt werden. Ich vergesse, dass dies der Sprung von 3,5 Stunden auf 1,5 Stunden war.
Eine Sache zu beachten ist, dass ich, obwohl ich dies mit SQL hätte tun können, viel länger gebraucht hätte, um zu lernen. Ich hätte entweder in Access speziell für SQL bestimmte Vorgänge lernen müssen - dort endeten die Daten für dieses Skript - - SQL in Access war nicht so robust, wie ich es benötigt hätte, als ich dies tatsächlich in Betracht gezogen hätte - oder Ich hätte alle meine Daten in eine SQLite3-Datenbank schreiben, dort bearbeiten und dann in Access ablegen müssen. Während dies zu ähnlichen Leistungsergebnissen geführt hätte, hätte es mir in Zukunft erschwert, mein Skript zu ändern.
Also ja, manchmal Pandas und ist nur streng besser als mit den SQL-Optionen, die Sie zu Ihrer Verfügung haben . Alles, was ich in SQL hätte tun müssen, wurde mit einer Funktion in Pandas erledigt. Sie können auch SQL-Syntax mit Pandas verwenden, wenn Sie möchten. Es gibt kaum einen Grund, Pandas und SQL nicht gleichzeitig zu verwenden.
Eine weitere Sache, die ich über Pandas und Numpy erwähnen möchte, ist, dass beide Bibliotheken von Natur aus auf Mengen basierende Ansätze sind. Mit diesen Bibliotheken können Sie Datenrahmen und Reihen durchlaufen, aber es ist wirklich schwierig, Daten in diesen Strukturen so zu ändern, dass Sie mit beiden Bibliotheken effizienteren Code schreiben, da dies viel einfacher ist machen. Mit SQL habe ich keine Erfahrung darin gemacht, "geführt" zu werden, wenn man nicht auf der Schiene ist, setbasierte Ansätze zu verwenden.
Noch eine gewaltige Sache, die ich bei Pandas vergessen habe. Geld . Pandas ist ein Tool, mit dem Sie bei vielen Data Science-Jobs wissen müssen, wie man es verwendet. So ziemlich jeder Data Science-Job, den ich mir angesehen habe, hat mehr gekostet als Jobs vom Typ Datenbankverwaltung. Die einzige Ausnahme, die mir aufgefallen ist, ist das Data Engineering, aber ich habe weitaus weniger von diesen Stellenangeboten gesehen. Pandas sieht so aus, als ob Sie damit auf einen Blick mehr Geld verdienen.