-Pd.to_datetime est pratique. -Lors de l'exécution de pd.read_csv, vous devez faire attention au code de caractère. ・ La mer née peut être bonne.
fichier Excel ・ Y compris les données de date ・ Il y a plusieurs rangées ・ La première ligne contient des données inutiles ○○,○○,2016/8/11,○○,○○ Des données comme. Le nom d'élément de la date est supposé être "date limite". Pour écrire un peu plus sur les données,
..., objet (chaîne de caractères), ..., date limite (% Y /% m /% d), ...,
Tout d'abord, je l'ai exporté d'Excel au format csv en vue de le lire à partir de pandas sous forme de fichier csv. Ensuite, lisez comme un DataFrame.
data = pd.read_csv('./Fichier.csv', encording='Shift-jis', skiprows=1)
Il a fallu un certain temps pour encoder = 'Shift-jis'. Avec Python3, j'avais l'image qu'aucune erreur ne se produirait même si je ne me souciais pas du code de caractère, mais ce n'était pas le cas.
Cette fois, extrayons la partie où se trouve la partie date dans le futur. Par conséquent, l'extraction des données de la partie date est comparée à la date du jour et conservée en tant que filtre.
myfilter = pd.to_datetime(data['Date limite']. format='%Y/%m/%d', error='coerce' > datetime.datetime.today()
Si vous souhaitez extraire la pièce qui a dépassé la date limite, vous pouvez vous permettre de la modifier.
myfilter = pd.to_datetime(data['Date limite']. format='%Y/%m/%d', error='coerce' < datetime.datetime.today()
Il m'a fallu un certain temps pour accéder à pd.to_datetime. Vous savez que les pandas ont une méthode très pratique pour manipuler les dates. http://sinhrks.hatenablog.com/entry/2014/11/09/183603 Je l'ai mentionné.
error = 'coerce' a également été pris un peu. Il y avait une ligne dans les données de date où la date n'a pas été entrée et le symbole a été entré, ce qui a provoqué l'erreur. Cette fois, j'ai décidé de définir l'erreur sur NaT. Il existe deux autres méthodes. http://pandas.pydata.org/pandas-docs/stable/generated/pandas.to_datetime.html Prière de se référer à.
Si vous voulez savoir combien de jours se sont écoulés entre l'échéance définie et aujourd'hui, vous pouvez soustraire la date / heure. Par exemple
days = datetime.datetime.today() - pd.to_datetime(data['Date limite'], format=%Y/%m/%d, errors='coerce')
Si vous voulez tracer cela, vous ne pouvez pas le sortir tel quel (on dit qu'il ne s'agit pas de données numériques), donc par exemple
days = days / np.timedelta64(1, 'D')
Il est nécessaire de faire un type float en effectuant un calcul. Il m'a fallu du temps pour arriver ici.
Si vous définissez errors = 'coerce' lors de l'exécution de pd.to_datetime (), l'erreur sera NaT, mais si vous souhaitez extraire NaT, par exemple, si vous souhaitez extraire des données sans données de date ,
filter = pd.to_datetime(...).isnull()
est. NaT est isnull (). Cela a également pris un certain temps pour rechercher et trouver.
Après cela, je viens de sortir en utilisant un filtre, mais je n'ai eu qu'à sortir des informations spécifiques (colonnes), donc
print(data[myfilter]['Nom d'une colonne particulière'])
C'était fabriqué. Après cela, si vous le modifiez de manière appropriée, vous pouvez le sortir sous forme de fichier, je vais donc extraire des données spécifiques (lignes) d'un gros fichier Excel et visualiser les jours jusqu'à la date limite.
Il semble bon de représenter graphiquement les données de DataFrame des pandas avec seaborn. Si vous souhaitez un graphique à barres avec le sujet sur l'axe vertical et l'axe horizontal sur le nombre de jours,
sns.barplot(x='Journées', y='matière',data=data)
Se sentir comme ça. Si vous spécifiez le nom de la colonne que vous souhaitez utiliser pour le graphique avec x et y, seaborn l'organisera bien.
Pour référence, https://stanford.edu/~mwaskom/software/seaborn/examples/horizontal_boxplot.html est.
Si vous souhaitez affiner la position du graphique de seaborn (matplotlib)
plt.subplot_adjust(left=*, right=*, top=*, bottom=*)Utiliser.
Cela peut être ressenti en affichant réellement le graphique et en effectuant des ajustements précis, mais cela semble être la position de l'extrémité gauche et de l'extrémité droite du graphique lorsque l'extrémité la plus à droite de la zone visible du graphique est 1,0.
Par conséquent, si vous le rendez plus grand que right = 1.0, le graphique s'étendra au-delà de la zone visible. Par exemple, si gauche = 0,5 et droite = 1,0, la moitié sera la zone graphique et la gauche sera beaucoup de graphique vide. Et toujours à gauche <à droite. La relation entre le haut et le bas est similaire.
## Si vous souhaitez utiliser la police japonaise dans le graphique
```python
fp = FontProperties(fname='C:\Windows\Fonts\YUGOTHL.TTC`. size=10)
En quelque sorte,
plt.xtics(fontproperties=fp)
plt.ytics(fontproperties=fp)
Si vous le faites, les caractères japonais ne seront pas déformés sur l'axe des x ou sur l'axe des y. Vous pouvez utiliser n'importe quelle police de votre choix. Vous pouvez le trouver en le recherchant dans l'Explorateur. Cependant, comme ce sera une interface graphique pour afficher les polices, il peut être un peu gênant de voir le chemin.
Si vous souhaitez utiliser le japonais sur l'étiquette,
plt.ylabel('étiquette', fontproperties=fp)
est.
L'affichage du graphique tracé est
plt.show()
Si vous souhaitez enregistrer
plt.savefig('nom de fichier')
Lors de l'enregistrement d'un fichier, vous pouvez également spécifier une résolution telle que plt.savefig ('file name', dpi = 300)
.
Si vous souhaitez utiliser la date dans le nom du fichier, par exemple
today = datetime.datetime.now()
plt.savefig("nom de fichier_{}-{}-{}.png ".format(today.year, today.month, today.day))
Il existe un moyen de le faire (exemple: nom de fichier_2016-08-14.png). Je pense qu'il existe un moyen plus intelligent, mais je le sais seulement. Cependant, la fonction de formatage est pratique, n'est-ce pas?
Recommended Posts