-Pd.to_datetime ist praktisch. -Wenn Sie pd.read_csv ausführen, müssen Sie mit dem Zeichencode vorsichtig sein. ・ Meer geboren kann gut sein.
Excel-Datei ・ Einschließlich Datumsdaten ・ Es gibt verschiedene Zeilen ・ Die erste Zeile enthält nutzlose Daten ○○,○○,2016/8/11,○○,○○ Daten wie. Der Elementname des Datums wird als "Frist" angenommen. Um ein wenig mehr über die Daten zu schreiben,
..., Betreff (Zeichenkette), ..., Frist (% Y /% m /% d), ...,
Zuerst habe ich es aus Excel im CSV-Format exportiert, um es aus Pandas als CSV-Datei zu lesen. Lesen Sie als Nächstes einen DataFrame.
data = pd.read_csv('./Datei.csv', encording='Shift-jis', skiprows=1)
Es dauerte eine Weile, bis = 'Shift-jis' aufgenommen wurde. Mit Python3 hatte ich das Bild, dass kein Fehler auftreten würde, selbst wenn mir der Zeichencode egal wäre, aber das war nicht der Fall.
Dieses Mal extrahieren wir den Teil, in dem sich der Datumsteil in der Zukunft befindet. Daher wird die Datenextraktion des Datumsteils mit dem heutigen Datum verglichen und als Filter gespeichert.
myfilter = pd.to_datetime(data['Frist']. format='%Y/%m/%d', error='coerce' > datetime.datetime.today()
Wenn Sie das Teil extrahieren möchten, das die Frist überschritten hat, können Sie es sich leisten, es zu ändern.
myfilter = pd.to_datetime(data['Frist']. format='%Y/%m/%d', error='coerce' < datetime.datetime.today()
Ich habe eine Weile gebraucht, um zu pd.to_datetime zu gelangen. Sie wissen, dass Pandas eine sehr bequeme Methode zum Bearbeiten von Daten haben. http://sinhrks.hatenablog.com/entry/2014/11/09/183603 Ich bezog mich auf.
error = 'coerce' wurde auch ein wenig erwischt. In den Datumsdaten befand sich eine Zeile, in der das Datum nicht eingegeben und das Symbol eingegeben wurde, was den Fehler verursachte. Dieses Mal habe ich beschlossen, den Fehler auf NaT zu setzen. Es gibt zwei andere Methoden. http://pandas.pydata.org/pandas-docs/stable/generated/pandas.to_datetime.html Bitte beziehen Sie sich auf.
Wenn Sie wissen möchten, wie viele Tage von der festgelegten Frist bis heute vergangen sind, können Sie die Datums- und Uhrzeitangabe abziehen. Zum Beispiel
days = datetime.datetime.today() - pd.to_datetime(data['Frist'], format=%Y/%m/%d, errors='coerce')
Wenn Sie dies zeichnen möchten, können Sie es nicht so ausgeben, wie es ist (es wird gesagt, dass es sich nicht um numerische Daten handelt), also zum Beispiel
days = days / np.timedelta64(1, 'D')
Es ist erforderlich, einen Float-Typ durch Ausführen einer Berechnung zu erstellen. Ich habe einige Zeit gebraucht, um hierher zu kommen.
Wenn Sie bei pd.to_datetime () error = 'coerce' setzen, lautet der Fehler NaT. Wenn Sie jedoch NaT extrahieren möchten, z. B. wenn Sie Daten ohne Datumsdaten extrahieren möchten ,
filter = pd.to_datetime(...).isnull()
ist. NaT ist isnull (). Das Suchen und Finden dauerte ebenfalls einige Zeit.
Danach habe ich nur noch mit einem Filter ausgegeben, musste aber nur bestimmte Informationen (Spalten) ausgeben
print(data[myfilter]['Name einer bestimmten Spalte'])
Es wurde gemacht. Wenn Sie es danach entsprechend ändern, können Sie es als Datei ausgeben, sodass ich bestimmte Daten (Zeilen) aus einer großen Excel-Datei extrahiere und die Tage bis zum Stichtag visualisiere.
Es scheint gut, die Daten von DataFrame von Pandas mit Seegeborenen grafisch darzustellen. Wenn Sie ein Balkendiagramm mit dem Motiv auf der vertikalen Achse und der horizontalen Achse auf der Anzahl der Tage wünschen,
sns.barplot(x='Tage', y='Gegenstand',data=data)
Ich fühle mich so. Wenn Sie den Spaltennamen, den Sie für das Diagramm verwenden möchten, mit x und y angeben, organisiert seaborn ihn gut.
Als Referenz https://stanford.edu/~mwaskom/software/seaborn/examples/horizontal_boxplot.html ist.
Wenn Sie die Grafikposition von Seaborn (Matplotlib) optimieren möchten
plt.subplot_adjust(left=*, right=*, top=*, bottom=*)Benutzen.
Dies kann gefühlt werden, indem das Diagramm tatsächlich angezeigt und Feineinstellungen vorgenommen werden. Es scheint jedoch die Position des linken Endes und des rechten Endes des Diagramms zu sein, wenn das am weitesten rechts liegende Ende des sichtbaren Bereichs des Diagramms 1,0 beträgt.
Wenn Sie es daher größer als rechts = 1,0 machen, erstreckt sich das Diagramm über den sichtbaren Bereich hinaus. Wenn beispielsweise left = 0,5 und right = 1,0 ist, ist die Hälfte die Grafikfläche und die linke Seite viele leere Grafiken. Und immer links <rechts. Die Beziehung zwischen oben und unten ist ähnlich.
## Wenn Sie japanische Schrift in der Grafik verwenden möchten
```python
fp = FontProperties(fname='C:\Windows\Fonts\YUGOTHL.TTC`. size=10)
Irgendwie,
plt.xtics(fontproperties=fp)
plt.ytics(fontproperties=fp)
In diesem Fall werden japanische Zeichen weder auf der x-Achse noch auf der y-Achse verstümmelt. Sie können eine beliebige Schriftart verwenden. Sie finden es, indem Sie es im Explorer nachschlagen. Da es sich jedoch um eine grafische Benutzeroberfläche zum Anzeigen von Schriftarten handelt, kann es etwas schwierig sein, den Pfad anzuzeigen.
Wenn Sie Japanisch auf dem Etikett verwenden möchten,
plt.ylabel('Etikette', fontproperties=fp)
ist.
Die Anzeige des gezeichneten Diagramms ist
plt.show()
Wenn Sie speichern möchten
plt.savefig('Dateiname')
Beim Speichern einer Datei können Sie auch eine Auflösung wie `plt.savefig ('Dateiname', dpi = 300)`
angeben.
Wenn Sie beispielsweise das Datum im Dateinamen verwenden möchten
today = datetime.datetime.now()
plt.savefig("Dateiname_{}-{}-{}.png ".format(today.year, today.month, today.day))
Es gibt eine Möglichkeit, dies zu tun (Beispiel: Dateiname_2016-08-14.png). Ich denke, es gibt einen klügeren Weg, aber das weiß ich erst jetzt. Die Formatierungsfunktion ist jedoch praktisch, nicht wahr?
Recommended Posts