[Python] Visualisez la chaleur de Tokyo et de la préfecture ○○ (mémo d'utilisation de DataFrame)

0. Problèmes cachés dans la vie quotidienne

L'été accueille la déclaration d'urgence. Afin d'éviter à fond les trois secrets, sans parler de jouer, je passe généralement par des idées Je ne peux pas aller au café qu'on m'a donné, alors je reste à la maison. Les seuls sujets sont le nombre de personnes infectées par le virus corona et la chaleur.

En tant que personne vivant à Tokyo, même si je parle d'être coincé dans la chaleur, mes cousins et mon père m'ont dit que la région est tout aussi chaude et que je fais ce genre d'exercice (vélo) par temps chaud. Il semblait qu'il était en compétition pour la manche.

De temps en temps, il semble que les habitants du pays enneigé atteignent les températures les plus élevées comme à Tokyo.

Il faisait si chaud que je pensais qu'il fumait du sol. Marcher 10 minutes me fait flotter. Et même si vous allez au café et buvez une boisson fraîche, vous ne pouvez pas facilement vous débarrasser de la chaleur qui envahit votre corps. En buvant un verre, j'ai réfléchi à la façon de comparer la chaleur de Niigata et de Tokyo à la température la plus élevée.

1. 1. Acquisition des données de température

De l 'Agence météorologique, nous avons pu obtenir des informations météorologiques pour chaque région en suivant les étapes ci-dessous. Puisque nous avons besoin de données pour Niigata et Tokyo cette fois, même si ce qui suit est pour Tokyo Exécutez et appuyez sur le bouton "Télécharger le fichier csv".

qiita_weather_niigata1.jpg

qiita_weather_niigata2.jpg

Je n'ai modifié que la partie élément du fichier csv ci-dessus pour le rendre plus facile à utiliser.

2. Divers problèmes

(1) Lire le fichier CSV

weather_parse2.jpynb



import pandas as pd
import datetime as dt
#Bibliothèque pour afficher des graphiques
import matplotlib.pyplot as plt
#Bibliothèque de localisation japonaise
import japanize_matplotlib
#Lire en spécifiant le code du caractère
df = pd.read_csv("data_weather2.csv",encoding="sjis")
print(df)

__ Résultat de sortie __


Date Température moyenne(℃)_Tokyo Quality Information Nombre homogène Température maximale(℃)_Informations sur la qualité de Tokyo.1 nombre homogène.1  \
0     2020/1/1         5.5     8     1        10.2       8       1   
1     2020/1/2         6.2     8     1        11.3       8       1   
2     2020/1/3         6.1     8     1        12.0       8       1   
3     2020/1/4         7.2     8     1        12.2       8       1   
4     2020/1/5         5.4     8     1        10.2       8       1   
..         ...         ...   ...   ...         ...     ...     ...   
229  2020/8/17        30.8     8     1        36.5       8       1   
230  2020/8/18        30.3     8     1        34.3       8       1   
231  2020/8/19        29.0     8     1        34.2       8       1   
232  2020/8/20        29.7     8     1        34.8       8       1   
233  2020/8/21        30.1     8     1        36.0       8       1   

Température la plus basse(℃)_Informations sur la qualité de Tokyo.2 nombre homogène.2 Température moyenne(℃)_Information sur la qualité de Niigata.3 nombre homogène.3 Température maximale(℃)_Niigata\
0           3.2       8       1         3.6       8       1         5.6   
1           1.9       8       1         3.0       8       1         5.7   
2           1.4       8       1         4.2       8       1         6.9   
3           3.6       8       1         5.5       8       1         8.3   
4           0.6       8       1         4.2       8       1         7.2   
..          ...     ...     ...         ...     ...     ...         ...   
229        27.2       8       1        27.8       8       1        30.4   
230        27.8       8       1        26.3       8       1        29.0   
231        25.6       8       1        26.8       8       1        30.9   
232        25.8       8       1        28.5       8       1        33.7   
233        26.0       8       1        27.5       8       1        30.8   

information de qualité.4 nombre homogène.4 Température minimale(℃)_Information sur la qualité de Niigata.5 nombre homogène.5  
0         8       1         1.0       8       1  
1         8       1         2.0       8       1  
2         8       1         1.7       8       1  
3         8       1         2.4       8       1  
4         8       1         1.7       8       1  
..      ...     ...         ...     ...     ...  
229       8       1        26.3       8       1  
230       8       1        23.3       8       1  
231       8       1        22.0       8       1  
232       8       1        22.8       8       1  
233       8       1        23.8       8       1  

[234 rows x 19 columns]

(2) Sélection de colonne et sélection de plage à représenter graphiquement

__ (Mémo 1) Pour sélectionner et afficher le nom de colonne 1 et le nom de colonne 2 parmi les éléments ci-dessus __

Spécifiez DataFrame [['nom de colonne 1', 'nom de colonne 2']].

__ (Mémo 2) Création d'un DataFrame __

DataFrame name = pd.DataFrame (données, colonnes = liste des noms de colonnes que vous souhaitez spécifier)

__ (Remarque 3) Pour convertir le nom de colonne 3 en type de date par défaut (aaaa-mm-jj) __

DataFrame name ['column name 3'] = pd.to_datetime (DataFrame name ['column name 3'], format = 'format before change of column name 3')

weather_parse2.jpynb


new_columns = ['Date', 'Température la plus élevée(℃)_Tokyo', 'Température la plus élevée(℃)_Niigata']  #Nom de colonne
new_data=df[['Date','Température la plus élevée(℃)_Tokyo','Température la plus élevée(℃)_Niigata']]

#recréer le dataframe
new_df=pd.DataFrame(new_data,columns=new_columns)
#Si vous ne faites rien, il ne sera pas reconnu comme un type de date
print(new_df.dtypes)
#Convertir la colonne de date en type de date
new_df['Date'] = pd.to_datetime(new_df['Date'], format='%Y/%m/%d')
print(new_df.dtypes)
print(new_df)

__ Résultat de sortie __

Objet de date
Température la plus élevée(℃)_Tokyo float64
Température la plus élevée(℃)_Niigata float64
dtype: object
Datetime64[ns]
Température la plus élevée(℃)_Tokyo float64
Température la plus élevée(℃)_Niigata float64
dtype: object
Date Température maximale(℃)_Tokyo température la plus élevée(℃)_Niigata
0   2020-01-01        10.2         5.6
1   2020-01-02        11.3         5.7
2   2020-01-03        12.0         6.9
3   2020-01-04        12.2         8.3
4   2020-01-05        10.2         7.2
..         ...         ...         ...
229 2020-08-17        36.5        30.4
230 2020-08-18        34.3        29.0
231 2020-08-19        34.2        30.9
232 2020-08-20        34.8        33.7
233 2020-08-21        36.0        30.8

[234 rows x 3 columns]

weather_parse2.jpynb



new_df2=new_df[(new_df['Date'] >= dt.datetime(2020,8,1)) & (new_df['Date'] < dt.datetime(2020,8,21))]
print(new_df2)

__ Résultat de sortie __

Date Température maximale(℃)_Tokyo température la plus élevée(℃)_Niigata
213 2020-08-01        31.8        28.8
214 2020-08-02        31.5        30.3
215 2020-08-03        32.3        32.2
216 2020-08-04        33.1        32.7
217 2020-08-05        34.2        33.4
218 2020-08-06        33.1        33.6
219 2020-08-07        35.4        28.3
220 2020-08-08        32.3        24.8
221 2020-08-09        34.7        28.4
222 2020-08-10        35.2        35.6
223 2020-08-11        37.3        35.7
224 2020-08-12        35.8        31.4
225 2020-08-13        36.1        31.4
226 2020-08-14        34.2        32.0
227 2020-08-15        36.1        30.1
228 2020-08-16        35.4        31.4
229 2020-08-17        36.5        30.4
230 2020-08-18        34.3        29.0
231 2020-08-19        34.2        30.9
232 2020-08-20        34.8        33.7

(3) Représentation graphique

weather_parse2.jpynb



#Spécifiez les données que vous souhaitez représenter graphiquement
new_columns3 = ['Température la plus élevée(℃)_Tokyo', 'Température la plus élevée(℃)_Niigata']  #Nom de colonne
new_data3=new_df2[['Température la plus élevée(℃)_Tokyo','Température la plus élevée(℃)_Niigata']]

new_df3=pd.DataFrame(new_data3,columns=new_columns3)
#affichage graphique
new_df3.plot()

matplot_weather_before.jpeg

3. 3. Formulaire rempli (spécifiez l'index sous forme de date et affichez la température maximale pour la période spécifiée)

weather_parse3.jpynb



import pandas as pd
import datetime as dt
#Lire en spécifiant le code du caractère, en indexant la date
df = pd.read_csv("data_weather2.csv",encoding="sjis")
#Index par date
df.index=pd.to_datetime(df['Date'], format='%Y/%m/%d').values
#Supprimer la colonne d'origine
df = df.drop(columns='Date')
print(df)

Résultat de sortie

Température moyenne(℃)_Tokyo Quality Information Nombre homogène Température maximale(℃)_Informations sur la qualité de Tokyo.1 nombre homogène.1 Température minimale(℃)_Tokyo\
2020-01-01         5.5     8     1        10.2       8       1         3.2   
2020-01-02         6.2     8     1        11.3       8       1         1.9   
2020-01-03         6.1     8     1        12.0       8       1         1.4   
2020-01-04         7.2     8     1        12.2       8       1         3.6   
2020-01-05         5.4     8     1        10.2       8       1         0.6   
...                ...   ...   ...         ...     ...     ...         ...   
2020-08-17        30.8     8     1        36.5       8       1        27.2   
2020-08-18        30.3     8     1        34.3       8       1        27.8   
2020-08-19        29.0     8     1        34.2       8       1        25.6   
2020-08-20        29.7     8     1        34.8       8       1        25.8   
2020-08-21        30.1     8     1        36.0       8       1        26.0   

information de qualité.2 nombre homogène.2 Température moyenne(℃)_Information sur la qualité de Niigata.3 nombre homogène.3 Température maximale(℃)_Information sur la qualité de Niigata.4  \
2020-01-01       8       1         3.6       8       1         5.6       8   
2020-01-02       8       1         3.0       8       1         5.7       8   
2020-01-03       8       1         4.2       8       1         6.9       8   
2020-01-04       8       1         5.5       8       1         8.3       8   
2020-01-05       8       1         4.2       8       1         7.2       8   
...            ...     ...         ...     ...     ...         ...     ...   
2020-08-17       8       1        27.8       8       1        30.4       8   
2020-08-18       8       1        26.3       8       1        29.0       8   
2020-08-19       8       1        26.8       8       1        30.9       8   
2020-08-20       8       1        28.5       8       1        33.7       8   
2020-08-21       8       1        27.5       8       1        30.8       8   

Nombre homogène.4 Température minimale(℃)_Information sur la qualité de Niigata.5 nombre homogène.5  
2020-01-01       1         1.0       8       1  
2020-01-02       1         2.0       8       1  
2020-01-03       1         1.7       8       1  
2020-01-04       1         2.4       8       1  
2020-01-05       1         1.7       8       1  
...            ...         ...     ...     ...  
2020-08-17       1        26.3       8       1  
2020-08-18       1        23.3       8       1  
2020-08-19       1        22.0       8       1  
2020-08-20       1        22.8       8       1  
2020-08-21       1        23.8       8       1  

[234 rows x 18 columns]

weather_parse3.jpynb


#Découpez une rangée
new_columns = ['Température la plus élevée(℃)_Tokyo', 'Température la plus élevée(℃)_Niigata']  #Nom de colonne
new_data=df[['Température la plus élevée(℃)_Tokyo','Température la plus élevée(℃)_Niigata']]

#recréer le dataframe
new_df=pd.DataFrame(new_data,columns=new_columns)

print(new_df)

Résultat de sortie

Température la plus élevée(℃)_東京 Température la plus élevée(℃)_Niigata
2020-01-01        10.2         5.6
2020-01-02        11.3         5.7
2020-01-03        12.0         6.9
2020-01-04        12.2         8.3
2020-01-05        10.2         7.2
...                ...         ...
2020-08-17        36.5        30.4
2020-08-18        34.3        29.0
2020-08-19        34.2        30.9
2020-08-20        34.8        33.7
2020-08-21        36.0        30.8

[234 rows x 2 columns]

weather_parse3.jpynb



new_df2=new_df['2020-08-01':'2020-08-21']
print(new_df2)

Résultat de sortie

Température la plus élevée(℃)_Tokyo température la plus élevée(℃)_Niigata
2020-08-01        31.8        28.8
2020-08-02        31.5        30.3
2020-08-03        32.3        32.2
2020-08-04        33.1        32.7
2020-08-05        34.2        33.4
2020-08-06        33.1        33.6
2020-08-07        35.4        28.3
2020-08-08        32.3        24.8
2020-08-09        34.7        28.4
2020-08-10        35.2        35.6
2020-08-11        37.3        35.7
2020-08-12        35.8        31.4
2020-08-13        36.1        31.4
2020-08-14        34.2        32.0
2020-08-15        36.1        30.1
2020-08-16        35.4        31.4
2020-08-17        36.5        30.4
2020-08-18        34.3        29.0
2020-08-19        34.2        30.9
2020-08-20        34.8        33.7
2020-08-21        36.0        30.8

weather_parse3.jpynb



colorlist=["red","blue"]
#Affichage du graphique à barres dans la couleur spécifiée
new_df2.plot.bar(color=colorlist)
#Spécifiez la position d'affichage de la légende en bas à droite
plt.legend(loc="lower right")
plt.show()

Résultat de sortie

matplot_weather.jpeg

Conclusion

La température maximale est souvent plus élevée à Tokyo.

Recommended Posts

[Python] Visualisez la chaleur de Tokyo et de la préfecture ○○ (mémo d'utilisation de DataFrame)
Python - Explication et résumé de l'utilisation des 24 meilleurs packages
Visualisez la gamme d'insertions internes et externes avec python
L'histoire de Python et l'histoire de NaN
[Python] Mémo d'opération de pandas DataFrame
Résumé des différences entre PHP et Python
Mathématiques Todai 2016 résolues avec Python
La réponse de "1/2" est différente entre python2 et 3
Spécification de la plage des tableaux ruby et python
Comparez la vitesse d'ajout et de carte Python
Organisez l'utilisation super basique des Autotools et de pkg-config
Prise en compte des forces et faiblesses de Python
[Python] Type de classe et utilisation du module datetime
Fonctionnement de base de Python Pandas Series et Dataframe (1)
Obtenez la date de mise à jour du fichier de mémorandum Python.
L'histoire de Python sans opérateurs d'incrémentation et de décrémentation.
Le processus d'installation d'Atom et de l'exécution de Python
Référence et modification de la limite supérieure récursive Python
La douleur de gRPC en utilisant Python. Novembre 2019. (Mémo personnel)
J'ai vérifié les versions de Blender et Python
[Introduction à Python] Utilisation basique de la bibliothèque matplotlib
Utilisation des locaux Python ()
le zen de Python
Essayez de gratter les données COVID-19 Tokyo avec Python
[Python] Fonctionnalisation de la formule de Heron et calcul de la surface maximale
[Mémo] Le mystère des instructions d'affectation cumulative dans les fonctions Python
[Python] J'ai essayé de visualiser la relation de suivi de Twitter
Le processus de création et d'amélioration du code Python orienté objet
[Python] Forces et faiblesses de DataFrame en termes de temps requis
Le websocket de toio (nodejs) et python / websocket ne se connecte pas.
Je veux connaître la nature de Python et pip
[Astuces] Problèmes et solutions dans le développement de python + kivy
Jouez avec le mécanisme de mot de passe de GitHub Webhook et Python
python Remarque: enumerate () -Obtenir l'index et l'élément de la liste en même temps et tourner pour l'instruction
[Python] Utilisation correcte de la carte
Vers la retraite de Python2
Mémo tranche python et rubis
Exemple d'utilisation de pickle Python
Visualisez la trajectoire de Hayabusa 2
Utilisation basique de la f-string Python
[Python] Utilisation correcte de la jointure
À propos des fonctionnalités de Python
Installation source et installation de Python
Le pouvoir des pandas: Python
J'ai comparé la vitesse de Hash avec Topaz, Ruby et Python
Comptez bien le nombre de caractères thaïlandais et arabes en Python
Remarque: obtenez les premier et dernier éléments de Python OrderedDict de manière non destructive
[Python] df Lire et faire le premier mémo (confirmation NaN etc.)
[Introduction à Python] J'ai comparé les conventions de nommage de C # et Python.
À propos de Boxplot et Violinplot qui visualisent la variation des données indépendantes
[Python] Comment obtenir le premier et le dernier jour du mois
[Python] J'ai expliqué en détail la théorie et la mise en œuvre de la régression logistique
L'histoire de l'exécution de python et de l'affichage des résultats sans fermer vim
[Python] J'ai expliqué en détail la théorie et la mise en œuvre de l'arbre de décision
Pratique de l'analyse de données par Python et pandas (Tokyo COVID-19 data edition)
Visualisez la fréquence des occurrences de mots dans les phrases avec Word Cloud. [Python]
Obtenez et définissez la valeur du menu déroulant en utilisant Python et Selenium