Wie benutzt man Pandas, um die Pivot-Tabellenergebnisse pro Woche zu gruppieren?

Unten ist ein Snippet von meinem Pivot-Tabellen-Ausgabe im .csv-Format nach der Verwendung von pandas pivot_table-Funktion:

Sub-Product 11/1/12 11/2/12 11/3/12 11/4/12 11/5/12 11/6/12 GP Acquisitions 164 168 54 72 203 167 GP Applications 190 207 65 91 227 200 GPF Acquisitions 1124 1142 992 1053 1467 1198 GPF Applications 1391 1430 1269 1357 1855 1510 

Das einzige, was ich jetzt tun muss, ist, Groupby in Pandas zu verwenden, um die Werte pro Woche für jedes Sub Produkt zusammenzufassen, bevor ich es an eine CSV-Datei ausliefert.

Unten ist die Ausgabe, die ich will, aber es ist in Excel gemacht. Die erste Spalte wäre vielleicht nicht genau dasselbe, aber mir geht es gut. Die Hauptsache, die ich tun muss, ist, die Tage für Woche zu gruppieren, so dass ich Summe der Daten erhalten kann, um Woche zu sein. (Sehen Sie, wie die obere Zeile die Daten alle 7 Tage gruppiert hat). In der Hoffnung, dies mit Python / Pandas zu tun. Ist es möglich?

 Row Labels 11/4/12 - 11/10/12 11/11/12 - 11/17/12 GP Acquisitions 926 728 Applications 1092 889 GPF Acquisitions 8206 6425 Applications 10527 8894 

  • Verbinden mit Microsoft SQL Server mit Python
  • Filtern eines Pyspark DataFrame mit SQL-like IN-Klausel
  • Erzeugen Sie neue Dataframe mit Werten in alten Dataframe als neue Funktionen in Python
  • Python 3 pandas read_sql konvertiert String-Abfrage in Byte nur auf Linux
  • Aggregation speichern () s in Django?
  • Python SQL Query Performance
  • Python list in sql query als Parameter
  • Wie lösche ich die Zitate aus einer Zeichenfolge für SQL-Abfrage in Python?
  • One Solution collect form web for “Wie benutzt man Pandas, um die Pivot-Tabellenergebnisse pro Woche zu gruppieren?”

    Das Werkzeug, das Sie benötigen, ist ein resample , das implizit Groupby über einen Zeitraum / Frequenz verwendet und eine Funktion wie Mittel oder Summe anwendet.

    Daten lesen

     In [2]: df Out[2]: Sub-Product 11/1/12 11/2/12 11/3/12 11/4/12 11/5/12 11/6/12 GP Acquisitions 164 168 54 72 203 167 GP Applications 190 207 65 91 227 200 GPF Acquisitions 1124 1142 992 1053 1467 1198 GPF Applications 1391 1430 1269 1357 1855 1510 

    Richten Sie einen MultiIndex ein.

     In [4]: df = df.reset_index().set_index(['index', 'Sub-Product']) In [5]: df Out[5]: 11/1/12 11/2/12 11/3/12 11/4/12 11/5/12 11/6/12 index Sub-Product GP Acquisitions 164 168 54 72 203 167 Applications 190 207 65 91 227 200 GPF Acquisitions 1124 1142 992 1053 1467 1198 Applications 1391 1430 1269 1357 1855 1510 

    Parse die Spalten als richtige datetimes. (Sie kommen als Saiten.)

     In [6]: df.columns = pd.to_datetime(df.columns) In [7]: df Out[7]: 2012-11-01 2012-11-02 2012-11-03 2012-11-04 \ index Sub-Product GP Acquisitions 164 168 54 72 Applications 190 207 65 91 GPF Acquisitions 1124 1142 992 1053 Applications 1391 1430 1269 1357 2012-11-05 2012-11-06 index Sub-Product GP Acquisitions 203 167 Applications 227 200 GPF Acquisitions 1467 1198 Applications 1855 1510 

    Wiederholen Sie die Spalten ( axis=1 ) wöchentlich ( 'w' ), summierend bei Woche. ( how='sum' oder how=np.sum sind beide gültige Optionen hier.)

     In [10]: df.resample('w', how='sum', axis=1) Out[10]: 2012-11-04 2012-11-11 index Sub-Product GP Acquisitions 458 370 Applications 553 427 GPF Acquisitions 4311 2665 Applications 5447 3365 
    Python ist die beste Programmiersprache der Welt.