Die Datenanalyse ist heutzutage populär geworden, daher werde ich versuchen, sie zu analysieren, indem ich ein Beispiel des Codes zeige.
der Code
Die Ausführungsumgebung ist Python3.
In diesem Artikel werden wir Folgendes tun:
Verwenden Sie "Seaborn" zum Zeichnen.
Seaborn: statistical data visualization
Die zu analysierenden Daten sind wie folgt.
target.csv
datetime, id, value
20170606121314, 1,2
20170606121315, 1,3
20170606121316, 1,4
20170608121616, 1,4
20170608121617, 1,1
20170608121618, 1,2
20170606121540, 2,10
20170606121541, 2,8
20170606121542, 2,11
20170608121543, 2,4
20170606134002, 3,21
20170606134003, 3,10
20170606134004, 3,4
20170608134005, 3,50
datetime
ist eine Folge von Jahr, Monat, Tag, Stunde, Minute und Sekunde.
Es wird auch angenommen, dass für jede ID für einen bestimmten Zeitraum mehrere Sekunden lang für jede ID ein bestimmter "Wert" auftritt.
python
import pandas as pd
#CSV-Lesung
df = pd.read_csv("target.csv",sep=",")
df.columns = ["datetime","id","value"]
Als Methode, um zu überprüfen, ob es gelesen wurde
df.head()
Es wird sein. Dann wird die Ausgabe wie folgt sein.
datetime | id | value | |
---|---|---|---|
0 | 20170606121314 | 1 | 2 |
1 | 20170606121315 | 1 | 3 |
2 | 20170606121316 | 1 | 4 |
3 | 20170608121616 | 1 | 4 |
4 | 20170608121617 | 1 | 1 |
Die head ()
Methode ist eine Methode, die die ersten 5 Datenzeilen anzeigt und häufig zur Überprüfung des Dateninhalts verwendet wird.
Es gibt auch eine Methode namens "tail ()", die 5 Datenzeilen vom Ende der Daten anzeigt. Das Anzeigeergebnis ist wie folgt.
datetime | id | value | |
---|---|---|---|
9 | 2017-06-08 12:15:43 | 2 | 4 |
10 | 2017-06-06 13:40:02 | 3 | 21 |
11 | 2017-06-06 13:40:03 | 3 | 10 |
12 | 2017-06-06 13:40:04 | 3 | 4 |
13 | 2017-06-08 13:40:05 | 3 | 50 |
In der folgenden Zeile wird die Spalte im Datenrahmen festgelegt.
python
df.columns = ["datetime","id","value"]
python
from datetime import datetime as dt
df.datetime = df.datetime.apply(lambda d: dt.strptime(str(d), "%Y%m%d%H%M%S"))
Dies dient dazu, die Arbeit mit der Datumsspalte zu vereinfachen. Wir greifen mit df.datetime
auf den Wert jeder Zeile in der datetime-Spalte zu und analysieren den String mit der strptime
-Methode. Dadurch können Werte, die ursprünglich Strings waren, in Datums- und Zeittypen konvertiert werden.
python
df_by_id= df.groupby("id")["value"].count().reset_index()
df_by_id
groupby (" id ")
aggregiert Datensätze nach Wert in der ID-Spalte. Die Anzahl der Datensätze nach ID wird mit "count ()" gezählt.
Der Inhalt von df_byid ist wie folgt.
id | value | |
---|---|---|
0 | 1 | 6 |
1 | 2 | 4 |
2 | 3 | 4 |
python
import seaborn as sns
import matplotlib.pyplot as plt
%matplotlib inline
id_df = pd.DataFrame(df_by_id)
sns.distplot(id_df.value, kde=False, rug=False, axlabel="record_count",bins=10)
Wir benutzen eine Bibliothek namens "Seaborn", die wunderschöne Figuren zeichnet.
python
df_value_sum= df.groupby("id")["value"].sum().reset_index()
Der Teil, der oben "count ()" ist, ist nur "sum ()".
Der Inhalt von df_value_sum lautet wie folgt.
id | value | |
---|---|---|
0 | 1 | 16 |
1 | 2 | 33 |
2 | 3 | 85 |
python
start_datetime_by_id = df.groupby(["id"])["datetime"].first().reset_index()
df_date = pd.DataFrame(start_datetime_by_id)
Der Inhalt von df_date lautet wie folgt.
id | datetime | |
---|---|---|
0 | 1 | 2017-06-06 12:13:14 |
1 | 2 | 2017-06-06 12:15:40 |
2 | 3 | 2017-06-06 13:40:02 |
python
sns.distplot(date_df.datetime.dt.month, kde=False, rug=False, axlabel="record_generate_date",hist_kws={"range": [1,30]}, bins=30)
Mit der Option hist_kws = {" range ": [1,30]}
zeichnet die horizontale Achse im Bereich von 0-30. Dies ist der Ort aus den Daten vom 30. Juni 2017, an dem die Daten aufgetreten sind.
Dies dient der Klarheit.
Recommended Posts