Zählen die Häufigkeit der Werte nach Datum mit pandas
Nehmen wir an ich habe folgende Zeitreihe:
Timestamp Category
2014-10-16 15:05:17 Facebook
2014-10-16 14:56:37 Vimeo
2014-10-16 14:25:16 Facebook
2014-10-16 14:15:32 Facebook
2014-10-16 13:41:01 Facebook
2014-10-16 12:50:30 Orkut
2014-10-16 12:28:54 Facebook
2014-10-16 12:26:56 Facebook
2014-10-16 12:25:12 Facebook
...
2014-10-08 15:52:49 Youtube
2014-10-08 15:04:50 Youtube
2014-10-08 15:03:48 Vimeo
2014-10-08 15:02:27 Youtube
2014-10-08 15:01:56 DailyMotion
2014-10-08 13:27:28 Facebook
2014-10-08 13:01:08 Vimeo
2014-10-08 12:52:06 Facebook
2014-10-08 12:43:27 Facebook
Name: summary, Length: 600
Ich würde gerne die Anzahl der jeweiligen Kategorie (Eindeutiger Wert/Faktor in der Zeit-Serie) pro Woche und Jahr.
Example:
Week/Year Category Count
1/2014 Facebook 12
1/2014 Google 5
1/2014 Youtube 2
...
2/2014 Facebook 2
2/2014 Google 5
2/2014 Youtube 20
...
Wie kann das erreicht werden mit Python pandas?
InformationsquelleAutor jcborges | 2015-01-07
Du musst angemeldet sein, um einen Kommentar abzugeben.
Könnte es am einfachsten sein, um Ihre Serie in einen DataFrame und verwenden Pandas'
groupby
Funktionalität (wenn Sie bereits ein DataFrame, dann geradeaus fahren, um das hinzufügen einer weiteren Spalte unten).Wenn eine Reihe aufgerufen wird
s
, dann schalten Sie es in einen DataFrame, wie so:Fügen Sie nun eine weitere Spalte für die Woche und das Jahr (eine Möglichkeit ist die Verwendung
apply
und generieren ein string der Woche/Jahr zahlen):Endlich, Gruppe von
'Week/Year'
und'Category'
und Aggregat mitsize()
zu bekommen, das zählt. Für die Daten in Ihre Frage, daraus ergibt sich das folgende:InformationsquelleAutor Alex Riley
Ein bisschen mehr klar, Sie brauchen nicht, um eine neue Spalte namens 'week_num".
Die Funktion, indem Sie automatisch einen call auf jedes Zeitstempel-Objekt des index zu konvertieren Woche und das Jahr und dann die Gruppe durch die Woche und das Jahr.
InformationsquelleAutor Leon
Konvertieren TimeStamp-Spalte-Nummer der Woche dann groupby, Nummer der Woche und die
value_count
die kategorische variable etwa so:Wo habe ich angenommen, dass eine neue Spalte
week_num
wurde von der TimeStamp-Spalte.Mit einem DataFrame
df
mit Datum-Spalten (Datentyp datetime)dates
könnten Siedf.groupby(df["dates"].dt.minute).size()
. Dies sagt Ihnen, wie viel Zeilen fallen in jeder minute.InformationsquelleAutor cwharland