Introduction à l'analyse de données par Python P17-P26 [ch02 1.usa.gov données de bit.ly]

module

# %load ipython_log.py
# IPython log file
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd

chargement du fichier

path='./usagov_bitly_data2012-03-16-1331923249.txt'
open(path).readline()
import json
record=[json.loads(line) for line in open(path)]   #Lire au format json
record[0]   #Le contenu de l'enregistrement étant long, ne regardons qu'un seul élément pour le moment
record[0]['tz']   #Dont tz est la clé
time_zone=[rec['tz'] for rec in record if 'tz' in rec]   #Voir seulement tz dans l'enregistrement. Mais seulement quand il y avait tz
time_zone[:10]   #Voir seulement la 10e ligne à partir du haut

Compter tz et stocker dans le dictionnaire

def get_counts(seq):
	'''
Comptez combien sont identiques à la chaîne de caractères dans seq et dictionnaire{'Chaîne':Quantité,...}Retourner comme
	def get_counts(seq):#Même sens que cela, mais facile avec defaultdict
		count=defaultdict(int)   #count={}
		for x in seq:
			if x in counts:
				counts[x]+=1
			else:
				count[x]=1
			return counts
	'''
	from collections import defaultdict
	counts=defaultdict(int)   #returns `defaultdict(<class 'int'>, {})`
	for x in seq:
		counts[x]+=1
	return counts

counts=get_counts(time_zone)
counts['America/New_York']
len(time_zone)

Trouver top10

Ce que nous faisons est de forme différente, mais tout le monde est ensemble

Faire une fonction

def top_counts(count_dict,n=10):
	value_key_pairs=[(count,tz) for tz, count in count_dict.items()]
	value_key_pairs.sort()
	return value_key_pairs[-n:]

top_counts(counts)

utiliser la classe

from collections import Counter
counts= Counter(time_zone)
counts.most_common(10)

utiliser des pandas

from pandas import DataFrame,Series
import pandas as pd
frame=DataFrame(record)
frame['tz'][:10]
tz_counts=frame['tz'].value_counts()
tz_counts[:10]

Complément NA

clean_tz=frame['tz'].fillna('Missing')
clean_tz[clean_tz=='']='UNknown'
clean_tz
tz_counts=clean_tz.value_counts()
tz_counts[:10]

tz_count PLOT

tz_counts[:10].plot(kind='barh',rot=0)
import matplotlib.pyplot as plt
# plt.show()

Nombre d'éléments

frame['a'][1]
frame['a'][50]
frame['a'][51]
results=Series([x.split()[0] for x in frame.a.dropna()])   #.dropna()méthode pandas Supprimer la ligne vierge Spécifiez la ligne à supprimer avec l'argument
   #str.split(x)Diviser str en une liste avec x comme délimiteur
   #Répertoriez les chaînes séparées par des espaces(Notation dans la liste), Créez un cadre de données pandas dans la classe Série
results[:5]
results.value_counts()[:8]   #value_counts()Comptez le nombre du même élément avec

Nombre d'éléments (une autre méthode)

cframe=frame[frame.a.notnull()]   #J'ai collecté uniquement ceux qui ne sont pas nuls dans la colonne a du cadre(cframe['a']==frame.a.dropna())
bool(map(list,[cframe['a'],frame.a.dropna()]))   #cframe la fonction de liste['a']Et cadre.a.dropna()Postulez et voyez si ce sont les mêmes

'Windows' or Not?

import numpy as np
operating_system=np.where(cframe['a'].str.contains('Windows'),'Windows','Not Windows')   #cframe['a']Mais'Windows'En vrai, y compris les personnages'Windows'avec faux'Not Windows'rends le
   #` ['Windows' if 'Windows' in x else 'Not Windows' for x in cframe['a']]`Pareil que
operating_system[:5]

operating_system Another Way

operating_system2=['Windows' if 'Windows' in x else 'Not Windows' for x in cframe['a']]
bool(list(operating_system)==operating_system2)   #True


by_tz_os=cframe.groupby(['tz',operating_system])
agg_counts=by_tz_os.size().unstack().fillna(0)
agg_counts[:10]



																	#2016/07/28 22:56:30__
indexer=agg_counts.sum(1).argsort()   #argsort()Index Np après tri.Renvoie au format tableau
   #np.sum()En gros, retournez celui qui ajoute tout le contenu du tableau

'''
# ABOUT np.sum()

>>> np.sum([[0, 1], [0, 5]], axis=0)
array([0, 6])   #return array([0+0],[1+5])
>>> np.sum([[0, 1], [0, 5]], axis=1)
array([1, 5])   #return array([0+1],[0+5])

'''

indexer[:10]


count_subset=agg_counts.take(indexer)[-10:]   #Agg à seulement 10 minutes de la fin de l'indexeur_Nombre de retours(take=avoir)

count_subset.plot(kind='barh', stacked=True)
# plt.show()

Normalisation (la terminaison est 0,1 ou ratio)

normed_subset=count_subset.div(count_subset.sum(1),axis=0)
normed_subset.plot(kind='barh',stacked=True)
# plt.show()

Recommended Posts

Introduction à l'analyse de données par Python P17-P26 [ch02 1.usa.gov données de bit.ly]
Note de lecture: Introduction à l'analyse de données avec Python
20200329_Introduction à l'analyse de données avec Python 2nd Edition Personal Summary
De l'introduction de JUMAN ++ à l'analyse morphologique du japonais avec Python
Analyse de données avec python 2
Analyse de données avec Python
[Introduction à minimiser] Analyse des données avec le modèle SEIR ♬
[Python] Flux du scraping Web à l'analyse des données
J'ai essayé l'analyse de données IRMf avec python (Introduction au décodage des informations cérébrales)
Comment récupérer des données d'image de Flickr avec Python
[Livre technique] Introduction à l'analyse de données avec Python -1 Chapitre Introduction-
[Impression] [Analyse de données à partir de zéro] Introduction à la science des données Python apprise dans des analyses de rentabilisation
Introduction à Python pour les utilisateurs de VBA - Appeler Python depuis Excel avec xlwings -
Météorologie x Python ~ De l'acquisition de données météorologiques à l'analyse spectrale ~
[Introduction à Python] Comment obtenir des données avec la fonction listdir
Analyse de données à partir de python (visualisation de données 1)
Introduction à l'analyse d'image opencv python
Analyse de données à partir de python (visualisation de données 2)
Porté du langage R de "Sazae-san's Janken Data Analysis" vers Python
Liens vers des personnes qui commencent tout juste l'analyse de données avec python
J'ai lu "Renforcer l'apprentissage avec Python de l'introduction à la pratique" Chapitre 1
J'ai lu "Renforcer l'apprentissage avec Python de l'introduction à la pratique" Chapitre 2
Recevoir des données textuelles de mysql avec python
[Note] Obtenir des données de PostgreSQL avec Python
[Introduction à Python3, jour 17] Chapitre 8 Destinations de données (8.1-8.2.5)
[Introduction à Python3, jour 17] Chapitre 8 Destinations de données (8.3-8.3.6.1)
Convertir des données Excel en JSON avec python
[Introduction à Python] Utilisons foreach avec Python
[Introduction à Python3 Jour 19] Chapitre 8 Destinations de données (8.4-8.5)
Convertissez des données FX 1 minute en données 5 minutes avec Python
[Introduction à Python3 Day 18] Chapitre 8 Destinations de données (8.3.6.2 à 8.3.6.3)
Analyse de données à partir de python (pré-traitement des données-apprentissage automatique)
"Introduction à l'analyse de données par modélisation statistique bayésienne à partir de R et Stan" implémenté en Python
[Introduction au Data Scientist] Bases de Python ♬
[Bases de la science des données] J'ai essayé d'enregistrer de csv à mysql avec python
Intégration de données depuis l'application Python sur Linux vers Amazon Redshift avec ODBC
Intégration de données depuis l'application Python sur Windows vers Amazon Redshift avec ODBC
Copier des données d'Amazon S3 vers Google Cloud Storage avec Python (boto)
Analyse de données python
[Python] Introduction facile à l'apprentissage automatique avec python (SVM)
Introduction à l'intelligence artificielle avec Python 1 «Théorie des algorithmes génétiques»
Markov Chain Artificial Brainless avec Python + Janome (1) Introduction à Janome
Chaîne de Markov artificielle sans cervelle avec Python + Janome (2) Introduction à la chaîne de Markov
Introduction à l'intelligence artificielle avec Python 2 «Pratique de l'algorithme génétique»
Introduction à Tornado (1): Framework Web Python démarré avec Tornado
J'ai essayé d'obtenir des données CloudWatch avec Python
Introduction à la modélisation statistique pour l'analyse des données
[Introduction à Python] Comment gérer les données au format JSON
Introduction au vol en formation avec Tello edu (Python)
Introduction à Python avec Atom (en route)
Écrire des données CSV sur AWS-S3 avec AWS-Lambda + Python
Introduction au modèle linéaire généralisé (GLM) par Python
[Introduction à l'application Udemy Python3 +] 9. Tout d'abord, imprimez avec print
De la construction d'environnement Python à la construction d'environnement virtuel avec anaconda
Extraire des données d'une page Web avec Python
[Python] De l'analyse morphologique des données CSV à la sortie CSV et à l'affichage graphique [GiNZA]
[Didacticiel d'analyse Python dans la base de données avec SQL Server 2017] Étape 2: importer des données dans SQL Server à l'aide de PowerShell
[Introduction à Python] Comment obtenir l'index des données avec l'instruction for