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 

  • Django: Wählen Sie Werte mit max Zeitstempeln oder verbinden Sie die gleiche Tabelle
  • Mehrere Einzigartige Spalten in SQLite
  • Python-Daten abgeschnitten und Leerzeichen werden zwischen Daten hinzugefügt, während sie in MsSQL eingefügt werden
  • Django-Äquivalent von COUNT mit GROUP BY
  • Lesen und Schreiben der Zugangsdatenbank in Python
  • SQLAlchemie: Automatisches Schließen verhindern
  • Python + sqlite, fügen Sie Daten aus Variablen in die Tabelle ein
  • Django aggregierte Abfragen mit Ausdrücken
  • 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.