Après quelques essais et erreurs, j'ai finalement réussi à lire read_csv. (Il n'y a aucune raison particulière pour laquelle je n'ai pas utilisé read_table la dernière fois. Pour être honnête, je pense que c'est la même chose pour read_csv et read_table.)
~~ ↑ L'adresse de l'article précédent est https://qiita.com/waka_taka/items/93049e603dcdd046cc01 Je l'ai mentionné parce que c'était, mais je voulais l'intégrer, https://camo.qiitausercontent.com/d76aa803f668e38e03042f90af5a95c8ce768712/68747470733a2f2f71696974612e636f6d2f77616b615f74616b612f6974656d732f3933303439653630336463646430343663633031 Il a été converti et n'a pas bien lié. (Est-ce la spécification de Qiita? Je ne suis pas encore habitué au format MarkDown, donc cela ressemble à une simple erreur de négligence, mais ...) ~~
C'était une erreur de négligence normale. .. .. Je viens de l'écrire dans la syntaxe d'incorporation d'image.
Comme c'est un gros problème, il est difficile de sortir les informations de débogage avec une instruction d'impression une par une, donc je vais essayer de l'implémenter tout en étudiant la journalisation. Cet article n'a rien à voir avec l'analyse des stocks.
Success_case01.py
import pandas as pd
import logging
#Spécification du nom du fichier de sortie du journal et du niveau de sortie du journal
logging.basicConfig(filename='CodeLog.log', level=logging.INFO)
#Fichier CSV(SampleStock01.csv)Spécifiez le code de caractère de
dframe = pd.read_csv('SampleStock01_t1.csv', encoding='SJIS', \
header=1, sep='\t')
#Sortie des informations de débogage
logging.info(dframe)
CodeLog.log
INFO:root:Date d'ouverture prix prix haut prix bas prix de clôture
0 2016/1/4 9,934 10,055 9,933 10,000
1 2016/1/5 10,062 10,092 9,942 10,015
2 2016/1/6 9,961 10,041 9,928 10,007
3 2016/1/7 9,946 10,060 9,889 9,968
4 2016/1/8 9,812 9,952 9,730 9,932
.. ... ... ... ... ...
937 2019/11/1 13,956 15,059 13,940 14,928
938 2019/11/5 13,893 15,054 13,820 14,968
939 2019/11/6 14,003 15,155 13,919 15,047
940 2019/11/7 14,180 15,054 14,057 15,041
941 2019/11/8 14,076 15,052 13,939 15,041
[942 rows x 5 columns]
journalisation --- fonction de journalisation pour Python Essayez de formater le format du journal en référence à
Success_case02.py
import pandas as pd
import logging
#Spécifiez le format du journal
# %(asctime)s :Une représentation lisible par l'homme de l'heure à laquelle le LogRecord a été généré.
# %(funcName)s :Le nom de la fonction qui contient l'appel de journalisation
# %(levelname)s :Niveau de journalisation des caractères pour les messages
# %(lineno)d :Numéro de la ligne source sur laquelle l'appel de journalisation a été émis
# %(message)s : msg %Message de journal demandé en tant qu'args
fomatter = '%(asctime)s:%(funcName)s:%(levelname)s:%(lineno)d:\n%(message)s'
#Spécification du nom du fichier de sortie du journal et du niveau de sortie du journal
#Ajouter une spécification de format de journal(paramètre de format)
logging.basicConfig(filename='CodeLog.log', level=logging.INFO, format=fomatter)
#Fichier CSV(SampleStock01.csv)Spécifiez le code de caractère de
dframe = pd.read_csv('SampleStock01_t1.csv', encoding='SJIS', \
header=1, sep='\t')
logging.info(dframe)
CodeLog.log
2019-11-11 12:49:17,060:<module>:INFO:20:
Date d'ouverture prix prix haut prix bas prix de clôture
0 2016/1/4 9,934 10,055 9,933 10,000
1 2016/1/5 10,062 10,092 9,942 10,015
2 2016/1/6 9,961 10,041 9,928 10,007
3 2016/1/7 9,946 10,060 9,889 9,968
4 2016/1/8 9,812 9,952 9,730 9,932
.. ... ... ... ... ...
937 2019/11/1 13,956 15,059 13,940 14,928
938 2019/11/5 13,893 15,054 13,820 14,968
939 2019/11/6 14,003 15,155 13,919 15,047
940 2019/11/7 14,180 15,054 14,057 15,041
941 2019/11/8 14,076 15,052 13,939 15,041
[942 rows x 5 columns]
Dans le développement d'applications, c'est une pratique de définir la journalisation avec ** fonction principale ** et d'utiliser un enregistreur pour tout le reste, donc je l'ai utilisé même à petite échelle où je ne trouve pas le besoin d'utiliser le journal comme habitude. je pense
Success_case03.py
import pandas as pd
import logging
#Spécifiez le format du journal
# %(asctime)s :Une représentation lisible par l'homme de l'heure à laquelle le LogRecord a été généré.
# %(funcName)s :Le nom de la fonction qui contient l'appel de journalisation
# %(levelname)s :Niveau de journalisation des caractères pour les messages
# %(lineno)d :Numéro de la ligne source sur laquelle l'appel de journalisation a été émis
# %(message)s : msg %Message de journal demandé en tant qu'args
fomatter = '%(asctime)s:%(funcName)s:%(levelname)s:%(lineno)d:\n%(message)s'
#Spécification du nom du fichier de sortie du journal et du niveau de sortie du journal
#Ajouter une spécification de format de journal(paramètre de format)
logging.basicConfig(filename='CodeLog.log', level=logging.INFO, format=fomatter)
#Paramètres de l'enregistreur(Niveau de journalisation INFO)
logger = logging.getLogger(__name__)
logger.setLevel(logging.INFO)
#Fichier CSV(SampleStock01.csv)Spécifiez le code de caractère de
dframe = pd.read_csv('SampleStock01_t1.csv', encoding='SJIS', \
header=1, sep='\t')
#Changer pour utiliser l'enregistreur
logger.info(dframe)
CodeLog.log
2019-11-11 13:00:59,279:<module>:INFO:25:
Date d'ouverture prix prix haut prix bas prix de clôture
0 2016/1/4 9,934 10,055 9,933 10,000
1 2016/1/5 10,062 10,092 9,942 10,015
2 2016/1/6 9,961 10,041 9,928 10,007
3 2016/1/7 9,946 10,060 9,889 9,968
4 2016/1/8 9,812 9,952 9,730 9,932
.. ... ... ... ... ...
937 2019/11/1 13,956 15,059 13,940 14,928
938 2019/11/5 13,893 15,054 13,820 14,968
939 2019/11/6 14,003 15,155 13,919 15,047
940 2019/11/7 14,180 15,054 14,057 15,041
941 2019/11/8 14,076 15,052 13,939 15,041
[942 rows x 5 columns]
Pour être honnête, je ne sais pas encore "pourquoi je dois l'écrire comme ça", mais je l'écris parce qu'il vaut mieux que les débutants s'habituent à ce format. À l'avenir, si vous trouvez la valeur de cette méthode de description, nous la corrigerons le cas échéant.
Success_case04.py
import pandas as pd
import logging
#Spécifiez le format du journal
# %(asctime)s :Une représentation lisible par l'homme de l'heure à laquelle le LogRecord a été généré.
# %(funcName)s :Le nom de la fonction qui contient l'appel de journalisation
# %(levelname)s :Niveau de journalisation des caractères pour les messages
# %(lineno)d :Numéro de la ligne source sur laquelle l'appel de journalisation a été émis
# %(message)s : msg %Message de journal demandé en tant qu'args
fomatter = logging.Formatter('%(asctime)s:%(funcName)s:%(levelname)s:%(lineno)d:\n%(message)s')
#Paramètres de l'enregistreur(Niveau de journalisation INFO)
logger = logging.getLogger(__name__)
logger.setLevel(logging.INFO)
#Paramètres du gestionnaire(Modifier le fichier de sortie/Réglage du niveau de journal/Paramètres de format de journal)
handler = logging.FileHandler('handler_log.log')
handler.setLevel(logging.INFO)
handler.setFormatter(fomatter)
logger.addHandler(handler)
#Fichier CSV(SampleStock01.csv)Spécifiez le code de caractère de
dframe = pd.read_csv('SampleStock01_t1.csv', encoding='SJIS', \
header=1, sep='\t')
#Changer pour utiliser l'enregistreur
logger.info(dframe)
handler_log.log
2019-11-11 13:31:56,161:<module>:INFO:28:
Date d'ouverture prix prix haut prix bas prix de clôture
0 2016/1/4 9,934 10,055 9,933 10,000
1 2016/1/5 10,062 10,092 9,942 10,015
2 2016/1/6 9,961 10,041 9,928 10,007
3 2016/1/7 9,946 10,060 9,889 9,968
4 2016/1/8 9,812 9,952 9,730 9,932
.. ... ... ... ... ...
937 2019/11/1 13,956 15,059 13,940 14,928
938 2019/11/5 13,893 15,054 13,820 14,968
939 2019/11/6 14,003 15,155 13,919 15,047
940 2019/11/7 14,180 15,054 14,057 15,041
941 2019/11/8 14,076 15,052 13,939 15,041
[942 rows x 5 columns]
Lorsque j'essaie de publier en continu avec Qiita, je reçois un message me demandant de publier après un certain temps. Je ne sais pas car la charge sur le serveur va augmenter, mais si je veux publier les informations que j'ai étudiées à tout moment, c'est dommage que les informations que je souhaite écrire disparaissent de mon esprit. Eh bien, c'est très facile à utiliser, donc je ne suis pas mécontent.
Cette fois, les informations n'ont aucun rapport avec l'analyse des actions, mais la prochaine fois, j'aimerais écrire un article sur le jeu avec panda et matplotlib. La sortie du journal est si importante que je voulais l'inclure dans les premières étapes.
Recommended Posts