[Comprendre au plus court] Principes de base de Python pour l'analyse des données

introduction

Pour ceux qui veulent analyser des données en utilisant Python ... ou qui ont décidé d'utiliser Python pour des séminaires et des recherches mais qui n'ont jamais fait de programmation. ** Si vous savez cela, les bases sont correctes ** (peut-être). Je pense que cela peut être utilisé comme un examen des connaissances. Tout d'abord, il couvre au minimum les bases de la grammaire Python à usage général, puis décrit les outils et techniques de base utilisés pour l'analyse des données. Si vous connaissez la grammaire de base de Python, vous pouvez passer à [2. Bases de Python pour l'analyse des données](# 2-bases de python pour l'analyse des données).

Cet article a été révisé et ajouté en fonction du matériel utilisé pour enseigner Python aux membres du séminaire universitaire de l'année dernière. (Il a également été adopté pour une conférence dans une autre université privée !!)

C'est juste la base de Python pour l'analyse des données, donc je ne parle pas beaucoup de l'analyse des données elle-même. Pour ceux qui veulent en savoir plus, je présenterai [Livres recommandés](# 3-Pour ceux qui veulent en savoir plus) à la fin.

Préparation de l'environnement d'exécution

Lors de la programmation pour la première fois, il est facile de trébucher lors de la création d'un environnement de programmation, mais en utilisant Google Colaboratory, vous pouvez utiliser Python dans le désordre. Ouvrez Google Drive et installez Colaboratory. Screenshot at May 05 17-07-08.png

Ci-dessous, on suppose qu'il sera exécuté dans Google Colaboratory, mais si vous avez un environnement d'exécution, vous pouvez bien sûr utiliser le jupyter d'Anaconda.

1. Bases de la grammaire Python

Commençons par les bases de Python.

1.1 Essayez d'afficher des caractères à l'écran

Utilisez la fonction d'impression.

print("Hello World!")

production


Hello World!

1.2 Quatre règles

3 + 4 #une addition
#production: 7

8 - 3 #soustraction
#production: 5

9 * 3 #multiplication
#production: 27

9 / 3 #division
#production: 3.0

5 // 2 #Quotient divisant
#production: 2

5 % 2 #Résidu de division
#production: 1

5 ** 2 #Puissance
#production: 25

1.3 Gestion des variables (type entier / type virgule flottante)

Découvrez les types de données Python. Un type de données est littéralement un type de données. Cependant, il se peut qu'il ne s'agisse pas d'une épingle. Jetons un coup d'œil à certains types de données couramment utilisés en nous y habituant plutôt qu'en les apprenant.

a = 4
a
#production: 4

Au fait, si vous souhaitez afficher un en tant que caractère

print('a')
#Sortie: a
b = 1.2
b #production:1.2

a + b
#a est un "type entier", b est un "type virgule flottante"
#production:5.2

"=" Signifie une affectation, pas une équivalence.

a = a + 1
a #production:5
c = 2
c += 1 #Opérateur binaire c= c +Identique à 1
c #Sortie: 3
d = 6
d -= 1 #Opérateur binaire c= c -Identique à 1
d
e = 100*5
e #Sortie: 500
f = 4
f == 4 #Sortie: vrai
#「==Est un opérateur de comparaison. Vrai car il est correct que f vaut 4 par substitution

f == 5 #Sortie: Faux

Soyez prudent lorsque vous écrivez des programmes en Python

En Python, l'indentation a une signification en tant que programme. Une erreur se produit lorsque les caractères sont abaissés sans signification.

x = 1
 x = x + 1
x

production


  File "<ipython-input-92-80d18cdaadaa>", line 2
    x = x + 1
    ^
IndentationError: unexpected indent

1.4 Type de chaîne

Les données de type chaîne de caractères sont créées en entourant une chaîne de caractères entre guillemets simples ou doubles.

a = "L'analyse des données"
b = 'Python'
a,b

production


('L'analyse des données', 'Python')

Connectons les chaînes. Utilisez +.

a = "Pour l'analyse des données"
b = 'Les bases de Python'
a + b
'Principes de base de Python pour l'analyse des données'

Une erreur se produira dans les cas suivants.

c = "4" #Type de chaîne
d = 3 #Type entier
c + d #Erreur car le type de variable est différent

production


TypeError                                 Traceback (most recent call last)
<ipython-input-98-237326ccb44f> in <module>()
      1 c = "4" #Type de chaîne
      2 d = 3 #Type entier
----> 3 c + d #Erreur car le type de variable est différent

TypeError: must be str, not int

Utilisez la fonction len () pour obtenir la longueur (nombre de caractères) de la chaîne de caractères

a = "DataAnalytics"
len(a) #Sortie: 13

1.5 méthode

Considérez-le comme une fonction qui peut être utilisée pour chaque type de données. Contrairement aux fonctions ordinaires qui peuvent être utilisées seules, les méthodes sont appelées avec des variables et des valeurs. Utilisons quelques méthodes qui peuvent être utilisées avec le type chaîne.

name = 'Donald Trump'

#Méthode supérieure pour rendre tous les alphabets supérieurs
print(name.upper())

#Méthode inférieure qui réduit tous les alphabets
print(name.lower())

production


DONALD TRUMP
donald trump

1.6 Type de liste

Un type de données qui peut stocker des nombres et des chaînes de caractères côte à côte. Organisez les caractères et les chaînes de caractères séparés par des virgules. Pratique lors de la gestion de blocs de données ensemble.

L = [1,2,3,4]
L

production


[1, 2, 3, 4]

Les données avec le premier ordre sont "0e".

L[1] #Obtenez le deuxième élément
#Sortie: 2
L[:] #Obtenez tous les éléments
#production:[1, 2, 3, 4]

Le contenu est modifié par substitution.

L[2]=999 #Changer le troisième élément
L  #production:[1, 2, 999, 4]

Utilisez la méthode append pour ajouter des données.

L.append(30) #Ajouter 30 à la fin de la liste
L #production:[1, 2, 999, 4, 30]

Tranche de liste

Il est facile de comprendre si vous pensez qu'il existe une "partition" entre les données et que vous spécifiez le numéro de la partition.

arashi = ["Sakurai Sho","Jun Matsumoto","Satoshi Ohno","Aiba Masaki","Ninomiya Kazunari"]
print(arashi[0:1])
print(arashi[1:4])
print(arashi[2:2])

production


['Sakurai Sho']
['Jun Matsumoto', 'Satoshi Ohno', 'Aiba Masaki']
[]

Des exercices

Dans la liste des arashi, sortons uniquement Aiba et Nino de la liste et affichons-les.

répondre

print(arashi[3:5])
#production:['Aiba Masaki', 'Ninomiya Kazunari']

1.7 Type de dictionnaire

Dans le dictionnaire, la correspondance est gérée en associant le mot-clé (clé) à la valeur d'élément correspondante (valeur).

arashi = {'Sakurai Sho':'38','Jun Matsumoto':'36','Satoshi Ohno':'39'}
print(arashi)

production


{'Sakurai Sho': '38', 'Jun Matsumoto': '36', 'Satoshi Ohno': '39'}

En spécifiant une clé, la valeur associée à cette clé est acquise.

arashi["Satoshi Ohno"] #Référence par clé
#production:'39'

1.8 Type de taple

a = (1,2,3,4)
a #production:(1,2,3,4)
print(a[0]) #Sortie: 1

La différence avec le type de liste est qu'il est immuable (non modifiable). Pratique pour gérer les données qui poseraient problème si elles étaient modifiées.

a[1]=10
#Erreur car elle ne peut pas être modifiée

production


TypeError                                 Traceback (most recent call last)
<ipython-input-130-5434a1e381e3> in <module>()
----> 1 a[1]=10
      2 #Erreur car elle ne peut pas être modifiée

TypeError: 'str' object does not support item assignment

1.9 Structure de contrôle

if déclaration

Spécifiez l'opération en fonction des conditions. Dans ce qui suit, si la variable est 20 ou plus (age> = 20 est True), "20 ans ou plus" est renvoyé, sinon (else) "underage" est renvoyé. Après les deux points, utilisez la touche Tab du clavier pour ajouter un retrait.

age = 20
if age >= 20:
  print('J'ai plus de 20 ans')
else:
  print('Tu es mineur')

#Sortie: plus de 20 ans
age = 20
if age >= 20:
print('J'ai plus de 20 ans') #Erreur car il n'y a pas de retrait
else:
print('Tu es mineur')

production


  File "<ipython-input-154-b2f09d489829>", line 4
    print('J'ai plus de 20 ans')
        ^
IndentationError: expected an indented block

pour déclaration

Exécute un traitement itératif. Ajoutez également un retrait après les deux points.

for i in range(5):  #Répétez 5 fois à partir de 0
  print(i)

#production
0
1
2
3
4

1.10 Définition des fonctions

Créez votre propre fonction. Déclarez la définition avec def et définissez le nom de la fonction (f () dans ce cas) et la variable. Programmez le comportement de la fonction sous les deux points.

def f(x,y):
  return x**2 + y**2 #Renvoie la valeur de retour (le résultat du calcul est passé)

print(f(10,20)) #10 au carré + 20 au carré
#production:500

1.11 Problème FizzBuzz

'Fizz' pour les multiples de 3, 'Buzz' pour les multiples de 5, 'FizzBuzz' pour les multiples communs de 3 et 5, Créons un programme qui affiche le nombre tel qu'il est avec d'autres nombres. Utilisez elif pour ajouter une condition.

for i in range(1,31):
  if i%3 == 0 and i%5==0:
    print('FizzBuzz')
  elif i%3 == 0:
    print('Fizz')
  elif i%5 == 0:
    print('Buzz')
  else:
    print(i)

production


1
2
Fizz
4
Buzz
Fizz
7
8
Fizz
Buzz
11
Fizz
13
14
FizzBuzz
16
17
Fizz
19
Buzz
Fizz
22
23
Fizz
Buzz
26
Fizz
28
29
FizzBuzz

Des exercices

Si vous mettez un nombre dans l'argument, créons une fonction qui affiche le nombre selon la règle FizzBuzz ci-dessus. Aussi, vérifions réellement l'affichage avec cette fonction.

répondre

def FizzBuzz(i):
  if i%3 == 0 and i%5 == 0:
    print('FizzBuzz')
  elif i%3 == 0:
    print('Fizz')
  elif i%5 == 0:
    print('Buzz')
  else:
    print(i)

FizzBuzz(100)
#Sortie: Buzz
FizzBuzz(105)
#Sortie: FizzBuzz

1.12 module

Python a un mécanisme appelé ** module ** qui organise des fonctions comme des fonctions et peut être chargé et utilisé en cas de besoin. Les fonctions utilisées jusqu'à présent sont des fonctions intégrées en Python qui peuvent être utilisées à tout moment, et elles sont appelées ** fonctions intégrées **. Vous pouvez trouver la liste sur http://docs.python.jp/3/library/functions.html.

D'autre part, ceux utilisés à des fins limitées peuvent être utilisés en les chargeant à partir du module. Python est livré avec beaucoup de ces modules utiles, mais la collection de modules livrés avec Python s'appelle la ** bibliothèque standard **. À propos, Anaconda est livré avec des bibliothèques utiles en plus de la bibliothèque standard.

import math #Charger le module mathématique (importer)
math.cos(0) #Sortie: 1.0

** Nom du module. Nom de la fonction ** Connectez le nom du module et le nom de la fonction avec.

import numpy as np #Importez le module NumPy avec le nom np
#Rapport circonférentiel π
np.pi #Sortie: 3.141592653589793

#cos(180°)
math.cos(np.pi) #production:-1.0

2. Principes de base de Python pour l'analyse des données

Exemples de bibliothèques souvent utilisées dans l'analyse des données et leurs principales utilisations

Numpy: calcul numérique, calcul matriciel Pandas: manipulation de données, arithmétique Matplotlib: dessin graphique Il existe diverses autres bibliothèques, mais cette fois je vais expliquer ces trois.

2.1 Numpy pour les calculs vectoriels et matriciels

Numpy est une bibliothèque de calculs numériques. Calculons la matrice.

import numpy as np #Importez le module NumPy et'np'Utilisé comme
arr1 = np.array([1,4,3]) #Créer une matrice 1x3
arr1

production


array([1, 4, 3])
arr1[2] #Obtenir l'élément
#Sortie: 3
#Matrice 2x3
arr2 = np.array([[1,2,3],[4,5,6]])

production


array([[1, 2, 3],
       [4, 5, 6]])
arr2[1,1] #Obtenir l'élément
#Sortie: 5

arr2.shape
#production:(2, 3)

arr1 + arr2 #Ajout de matrice
#production:
array([[2, 6, 6],
       [5, 9, 9]])

Calculons le produit des matrices avec la fonction dot ()

a = np.array([[1,2],[3,4]])
b = np.array([[5,6],[7,8]])
np.dot(a,b)

#production
array([[19, 22],
       [43, 50]])

Si vous le pouvez, faites un calcul manuel et voyez si les résultats du produit matriciel correspondent. À propos, le produit de la procession précédente (arr1, arr2) est,

np.dot(arr1,arr2) 

production


ValueError                                Traceback (most recent call last)
<ipython-input-62-e5b6075b8937> in <module>()
----> 1 np.dot(arr1,arr2)

<__array_function__ internals> in dot(*args, **kwargs)

ValueError: shapes (3,) and (2,3) not aligned: 3 (dim 0) != 2 (dim 0)

Il s'agit d'une erreur car le nombre de colonnes dans arr1 et le nombre de lignes dans arr2 ne correspondent pas et le produit des colonnes ne peut pas être défini.

2.2 Dessiner des graphiques avec Matplotlib

Matplotlib, une bibliothèque de visualisation de données, est utilisé pour le dessin. Cette fois, importez le module pyplot de la bibliothèque Matplotlib et utilisez la fonction plot dans le module pyplot. Tout d'abord, dessinons une ligne droite. C'est une image de la préparation de plusieurs points qui divisent la plage déterminée et les relient avec une ligne.

import matplotlib.pyplot as plt
#Importez le module pyplot depuis le package Matplotlib
import numpy as np

x = np.linspace(0,10,100) #Remplacez le nombre de 0 à 10 divisé par 100 en utilisant la fonction NumPy linspace pour la variable x
y = x

plt.plot(x,y) #Tracer x et y
plt.show() #Afficher le graphique

line.png Ensuite, dessinons une courbe quadratique. Aussi, installez une bibliothèque (japanize-matplotlib) pour utiliser les polices japonaises avec matplotlib afin qu'elle puisse être appelée par import.

!pip install japanize-matplotlib
import numpy as np
import matplotlib.pyplot as plt
import japanize_matplotlib

x = np.linspace(-5,5,300) #Utilisez la fonction NumPy linspace pour la variable x-Remplacez le nombre de 5 à 5 divisé en 300
y = x**2

plt.plot(x,y,color = "r") #Spécifiez la couleur comme rouge
plt.xlabel('y=x^Graphique de 2') #Définir l'étiquette de l'axe x
plt.show()

1.png Comme je l'ai écrit en dessinant la première ligne droite, cette ligne parabolique, qui ressemble à une courbe lisse, est en fait un ensemble de lignes droites. Rugueuse la division.

x = np.linspace(-5,5,10) #Essayez de vous diviser en 10
y = x**2

plt.plot(x,y,color = "r")
plt.xlabel('y=x^Graphique de 2')
plt.show()

2.png C'est un peu plus fou qu'avant. Pratiquons un peu plus le graphique. Ensuite, dessinez un graphique de la fonction triangulaire à l'aide de la fonction Numpy.

import math
x = np.linspace(-np.pi, np.pi) #-De π à π
plt.plot(x, np.cos(x), color='r', ls='-', label='cos') #Spécifiez le type de ligne, la couleur et l'étiquette
plt.plot(x, np.sin(x), color='b', ls='-', label='sin')
plt.plot(x, np.tan(x), color='c', marker='s', ls='None', label='tan')

#Spécifiez la plage de coordonnées à afficher
plt.xlim(-np.pi, np.pi) 
plt.ylim(-1.5, 1.5)

#x=0 et y=Tracez une ligne auxiliaire à 0
plt.axhline(0, ls='-', c='b', lw=0.5) #horizontal(Horizontal)Alors hline
plt.axvline(0, ls='-', c='b', lw=0.5) #vertical(verticale)Alors vline

plt.legend()
plt.xlabel('axe x')
plt.ylabel('axe y')
plt.title('Graphique de fonction triangulaire')

plt.show()

3.png

2.3 Manipulation des données avec Pandas

Ce Pandas est principalement utilisé pour le prétraitement des données. Enregistrez les données à analyser dans un DataFrame (comme un coffre-fort de données) et traitez-les si nécessaire.
Les données qui peuvent être utilisées pour l'analyse ne sont pas toujours propres. La plupart du temps consacré à l'analyse des données et à l'apprentissage automatique est ce pré-traitement. Ce qui contrôle le prétraitement contrôle l'analyse des données. Tout d'abord, créons deux DataFrames simples.

import pandas as pd
df1 = pd.DataFrame({
          'Nom':['sato','ito','kato','endo','naito'],
          'numéro d'étudiant':[1,2,3,4,5],
          'poids':[92,43,58,62,54],
          'la taille':[178,172,155,174,168]
          })
df1
Nom numéro d'étudiant poids la taille
0 sato 1 92 178
1 ito 2 43 172
2 kato 3 58 155
3 endo 4 62 174
4 naito 5 54 168

DataFrame est indexé (numéro le plus à gauche à partir de 0)

df2 = pd.DataFrame({
          'numéro d'étudiant':[1,2,3,5,6,9],
          'Math':[50,60,70,80,90,100],
          'Anglais':[95,85,80,75,70,65],
          'Science':[40,55,60,65,50,75],
          'classe':['groupe A','Groupe B','groupe A','Groupe C','Groupe B','Groupe C']
          })
df2
numéro d'étudiant Math Anglais Science classe
0 1 50 95 40 groupe A
1 2 60 85 55 Groupe B
2 3 70 80 60 groupe A
3 5 80 75 65 Groupe C
4 6 90 70 50 Groupe B
5 9 100 65 75 Groupe C

J'ai créé deux cadres de données. Les informations telles que le nom et le poids sont stockées dans df1, et les informations telles que les notes sont stockées dans df2. Supposons également que les deux bases de données soient liées par un numéro d'étudiant unique.

Extraction de données

Lors de l'appel d'une colonne spécifique, spécifiez le nom de la colonne avec [].

df2['Math']

production


0     50
1     60
2     70
3     80
4     90
5    100
Name:Math, dtype: int64

Lors de l'extraction de plusieurs colonnes, doublez [] et appelez.

df2[['Anglais','classe']]
Anglais classe
0 95 groupe A
1 85 Groupe B
2 80 groupe A
3 75 Groupe C
4 70 Groupe B
5 65 Groupe C

Trier

Tout d'abord, triez (triez) uniquement des colonnes spécifiques. Utilisez la fonction sort_values (). La valeur par défaut est l'ordre croissant.

df1['la taille'].sort_values()
#production:
2    155
4    168
1    172
3    174
0    178
Name:la taille, dtype: int64

Pour trier par poids et afficher tout le df1, définissez l'argument by de la fonction sort_values ().

df1.sort_values(by=["poids"], ascending=False) #ascending=Si vrai, ordre croissant
Nom numéro d'étudiant poids la taille
0 sato 1 92 178
3 endo 4 62 174
2 kato 3 58 155
4 naito 5 54 168
1 ito 2 43 172

Ils sont classés par ordre décroissant de poids.

Combiner des données

Vous pouvez utiliser la fonction de fusion pour combiner toutes sortes de données. Combinons df1 et df2 avec le numéro d'étudiant comme clé.

Jointure interne

data_inner = pd.merge(df1,df2, on='numéro d'étudiant', how='inner')
data_inner
Nom numéro d'étudiant poids la taille Math Anglais Science classe
0 sato 1 92 178 50 95 40 groupe A
1 ito 2 43 172 60 85 55 Groupe B
2 kato 3 58 155 70 80 60 groupe A
3 naito 5 54 168 80 75 65 Groupe C

Seules les données communes aux deux trames de données ont été combinées. Au fait, df1 et df2 n'ont en commun que le numéro d'étudiant, donc le numéro d'étudiant est la clé par défaut même si vous ne vous souciez pas de le spécifier.

Jointure externe

data_outer = pd.merge(df1, df2, how = 'outer')
data_outer
Nom numéro d'étudiant poids la taille Math Anglais Science classe
0 sato 1 92 178 50 95 40 groupe A
1 ito 2 43 172 60 85 55 Groupe B
2 kato 3 58 155 70 80 60 groupe A
3 endo 4 62 174 nan nan nan nan
4 naito 5 54 168 80 75 65 Groupe C
5 nan 6 nan nan 90 70 50 Groupe B
6 nan 9 nan nan 100 65 75 Groupe C

Dans le cas d'une jointure externe, celle qui n'existe que dans l'une ou l'autre trame de données est également acquise.

Joint gauche

data_left = pd.merge(df1,df2,how = 'left')
data_left
Nom numéro d'étudiant poids la taille Math Anglais Science classe
0 sato 1 92 178 50 95 40 groupe A
1 ito 2 43 172 60 85 55 Groupe B
2 kato 3 58 155 70 80 60 groupe A
3 endo 4 62 174 nan nan nan nan
4 naito 5 54 168 80 75 65 Groupe C

Avec la jointure gauche, ce qui existe à la destination de la jointure (df1) reste. Contrairement à l'heure de la jointure interne, les données d'endo, y compris les valeurs manquantes, sont affichées.

Jointure droite

data_right = pd.merge(df1,df2,how = 'right')
data_right
Nom numéro d'étudiant poids la taille Math Anglais Science classe
0 sato 1 92 178 50 95 40 groupe A
1 ito 2 43 172 60 85 55 Groupe B
2 kato 3 58 155 70 80 60 groupe A
3 naito 5 54 168 80 75 65 Groupe C
4 nan 6 nan nan 90 70 50 Groupe B
5 nan 9 nan nan 100 65 75 Groupe C

Similaire à la jointure gauche, les données de la destination de jointure (cette fois df2) sont laissées. Contrairement à l'heure de la jointure externe, les données d'endo ne sont pas affichées. Avez-vous bien compris les différences entre chaque lien?

Ajouter une colonne

Dans df2, ajoutons une colonne indiquant le score total des matières scientifiques. C'est OK si vous spécifiez un nouveau nom de colonne et remplacez comme indiqué ci-dessous.

df2['Sujets scientifiques'] = df2['Math'] + df2['Science']
df2 
numéro d'étudiant Math Anglais Science classe Sujets scientifiques
0 1 50 95 40 groupe A 90
1 2 60 85 55 Groupe B 115
2 3 70 80 60 groupe A 130
3 5 80 75 65 Groupe C 145
4 6 90 70 50 Groupe B 140
5 9 100 65 75 Groupe C 175

Fonction d'agrégation

Supposons que vous souhaitiez connaître le score moyen d'un test pour chaque classe. Utilisez la fonction groupby. Dans ce qui suit, après avoir totalisé pour chaque classe, la fonction moyenne est utilisée pour la moyenne.

df2[['Math','Anglais','Science','classe']].groupby(['classe']).mean().reset_index() 
#Réinitialiser l'index (pas de décalage de table)
classe Math Anglais Science
groupe A 60 87.5 50
Groupe B 75 77.5 52.5
Groupe C 90 70 70

Agréger avec groupby et calculer pour chaque groupe avec la fonction après cela. En plus de la fonction moyenne, vous pouvez également utiliser la fonction max, la fonction médiane, la fonction min, etc.

#Extraire le score le plus bas pour chaque matière dans chaque classe
df2[['Math','Anglais','Science','classe']].groupby(['classe']).min().reset_index() 
classe Math Anglais Science
groupe A 50 80 40
Groupe B 60 70 50
Groupe C 80 65 65

Sortie CSV

Pour sortir la trame de données créée au format csv, utilisez la fonction to_csv.

data_right.to_csv('sample.csv')

Lire les données CSV

Cette fois, j'ai créé un DataFrame à partir de zéro, mais il existe de nombreuses situations dans lesquelles les données sont lues à l'origine au format csv. Utilisez la fonction read_csv () pour lire des fichiers au format CSV avec des pandas. Cependant, ceci est utilisé pour les fichiers CSV séparés par des virgules. Pour les délimiteurs de tabulation, utilisez la fonction read_table (). Lisons la sortie sample.csv plus tôt et affichons-la à nouveau en tant que DataFrame.

sample = pd.read_csv('sample.csv', index_col=0) #ignorer l'index
sample
Nom numéro d'étudiant poids la taille Math Anglais Science classe
0 sato 1 92 178 50 95 40 groupe A
1 ito 2 43 172 60 85 55 Groupe B
2 kato 3 58 155 70 80 60 groupe A
3 naito 5 54 168 80 75 65 Groupe C
4 nan 6 nan nan 90 70 50 Groupe B
5 nan 9 nan nan 100 65 75 Groupe C

Jusqu'à présent, vous avez appris toutes les opérations de base lors de l'analyse de données avec Python. Enfin, résolvons les exercices.

Des exercices

Utilisez les données de df2 pour trouver la moyenne des points totaux des sujets pour chaque classe et tracez-la dans un graphique à barres.

Exemple de réponse

import matplotlib.pyplot as plt
import japanize_matplotlib

df2['Points totaux'] = df2['Math'] + df2['Anglais'] +df2['Science']
sum_score = df2[['classe','Points totaux']].groupby(['classe']).mean().reset_index()

x = sum_score['classe']
y = sum_score['Points totaux']
plt.bar(x,y)

plt.xlabel('classe')
plt.ylabel('Score total moyen')
plt.title('Score total moyen par classe')
plt.show()

average.png Le groupe C a le score total moyen le plus élevé de l'examen.

3. Pour ceux qui veulent en savoir plus

Cela fait longtemps jusqu'à présent. Merci à tous ceux qui y ont travaillé. Les livres suivants sont recommandés pour ceux qui veulent approfondir.

Qui veut en savoir plus sur Python

[Minna no Python 4e édition] (https://www.amazon.co.jp/%E3%81%BF%E3%82%93%E3%81%AA%E3%81%AEPython-%E7%AC%AC4%E7%89%88-%E6%9F%B4%E7%94%B0-%E6%B7%B3/dp/479738946X/) Vous devriez le lire après avoir maîtrisé les bases. C'est aussi ○ à utiliser comme dictionnaire.

Ceux qui veulent approfondir l'analyse des données en Python

[Introduction à l'analyse des données avec Python 2e édition - Traitement des données à l'aide de NumPy et pandas](https://www.amazon.co.jp/Python%E3%81%AB%E3%82%88%E3%82% 8B% E3% 83% 87% E3% 83% BC% E3% 82% BF% E5% 88% 86% E6% 9E% 90% E5% 85% A5% E9% 96% 80-% E7% AC% AC2 % E7% 89% 88-% E2% 80% 95NumPy% E3% 80% 81pandas% E3% 82% 92% E4% BD% BF% E3% 81% A3% E3% 81% 9F% E3% 83% 87% E3% 83% BC% E3% 82% BF% E5% 87% A6% E7% 90% 86-Wes-McKinney / dp / 487311845X /)

Ceux qui veulent être forts dans le prétraitement des données

[Terminer le prétraitement [Techniques pratiques SQL / R / Python pour l'analyse des données]](https://www.amazon.co.jp/%E5%89%8D%E5%87%A6%E7%90%86] % E5% A4% A7% E5% 85% A8% EF% BC% BB% E3% 83% 87% E3% 83% BC% E3% 82% BF% E5% 88% 86% E6% 9E% 90% E3 % 81% AE% E3% 81% 9F% E3% 82% 81% E3% 81% AESQL-R-Python% E5% AE% 9F% E8% B7% B5% E3% 83% 86% E3% 82% AF % E3% 83% 8B% E3% 83% 83% E3% 82% AF% EF% BC% BD-% E6% 9C% AC% E6% A9% 8B-% E6% 99% BA% E5% 85% 89 - / dp / B07C3JFK3V /) J'y fais souvent référence dans la pratique. En plus de Python, vous pouvez également en apprendre davantage sur R dplyr et le prétraitement SQL.

[Python Practical Data Analysis 100 Knock](https://www.amazon.co.jp/Python%E5%AE%9F%E8%B7%B5%E3%83%87%E3%83%BC%E3% 82% BF% E5% 88% 86% E6% 9E% 90100% E6% 9C% AC% E3% 83% 8E% E3% 83% 83% E3% 82% AF-% E4% B8% 8B% E5% B1 % B1-% E8% BC% 9D% E6% 98% 8C / dp / 4798058750 / r8674263 & s = livres & sr = 1-1) Bien que le nom indique «analyse des données», de nombreuses pages sont consacrées au prétraitement des données par les pandas. ** L'analyse des données est un livre conforme au fait que le prétraitement est à 80% ** (?). Cela suffit pour maîtriser les opérations de base des pandas.

Les personnes qui souhaitent faire du machine learning avec Python

Présentation de deux livres d'apprentissage automatique O'Reilly.

[Apprentissage automatique à partir des fonctionnalités Python apprises avec scikit-learn Bases de l'ingénierie et de l'apprentissage automatique](https://www.amazon.co.jp/Python%E3%81%A7%E3%81%AF%E3%81] % 98% E3% 82% 81% E3% 82% 8B% E6% A9% 9F% E6% A2% B0% E5% AD% A6% E7% BF% 92-% E2% 80% 95scikit-learn% E3% 81% A7% E5% AD% A6% E3% 81% B6% E7% 89% B9% E5% BE% B4% E9% 87% 8F% E3% 82% A8% E3% 83% B3% E3% 82% B8% E3% 83% 8B% E3% 82% A2% E3% 83% AA% E3% 83% B3% E3% 82% B0% E3% 81% A8% E6% A9% 9F% E6% A2% B0% E5% AD% A6% E7% BF% 92% E3% 81% AE% E5% 9F% BA% E7% A4% 8E-Andreas-C-Muller / dp / 4873117984 /)

[Livre de recettes d'apprentissage automatique Python](https://www.amazon.co.jp/Python%E6%A9%9F%E6%A2%B0%E5%AD%A6%E7%BF%92%E3%82% AF% E3% 83% 83% E3% 82% AF% E3% 83% 96% E3% 83% 83% E3% 82% AF-Chris-Albon / dp / 4873118670 /)

Ceux qui veulent étudier le fonctionnement des algorithmes d'apprentissage automatique

[Essence of Machine Learning-Python, Mathematics, Algorithms Learned while Implementation](https://www.amazon.co.jp/%E6%A9%9F%E6%A2%B0%E5%AD%A6%E7%] BF% 92% E3% 81% AE% E3% 82% A8% E3% 83% 83% E3% 82% BB% E3% 83% B3% E3% 82% B9-% E5% AE% 9F% E8% A3 % 85% E3% 81% 97% E3% 81% AA% E3% 81% 8C% E3% 82% 89% E5% AD% A6% E3% 81% B6Python-% E3% 82% A2% E3% 83% AB% E3% 82% B4% E3% 83% AA% E3% 82% BA% E3% 83% A0-Apprentissage automatique / dp / 4779393963 / Implémentez un algorithme d'apprentissage automatique typique à partir de zéro en Python. Vous pouvez également en apprendre davantage sur les mathématiques utilisées pour l'apprentissage automatique.

Recommended Posts

[Comprendre au plus court] Principes de base de Python pour l'analyse des données
MongoDB avec Python pour la première fois
Python pour l'analyse des données Chapitre 4
Python pour l'analyse des données Chapitre 2
Python pour l'analyse des données Chapitre 3
Modèle de prétraitement pour l'analyse des données (Python)
Voir python pour la première fois
Essayez d'utiliser FireBase Cloud Firestore avec Python pour le moment
Outil de visualisation Python pour le travail d'analyse de données
[Python3] Comprendre les bases de Beautiful Soup
Principes de base pour exécuter NoxPlayer en Python
[Python3] Comprendre les bases des opérations sur les fichiers
Analyse de données python
Illustrez instantanément la période prédominante dans les données de séries chronologiques à l'aide de l'analyse spectrale
Une note utile lors de l'utilisation de Python après une longue période
Obtenez la clé pour la migration de la deuxième couche de données JSON avec python
Obtenez des données de séries chronologiques de k-db.com avec Python
CERTIFICATE_VERIFY_FAILED dans Python 3.6, le programme d'installation officiel de macOS
[CovsirPhy] Package Python COVID-19 pour l'analyse des données: chargement des données
Utilisez Logger avec Python pour le moment
J'ai essayé la programmation python pour la première fois.
Conseils pour accéder à l'API ATND avec Python
Afficher la bougie de données FX (forex) en Python
Analyse de survie apprise avec Python 2 - Estimation Kaplan-Meier
Analyse de données en Python: une note sur line_profiler
L'histoire de la lecture des données HSPICE en Python
Environnement enregistré pour l'analyse des données avec Python
Analyse des données en Python Résumé des sources que les débutants devraient d'abord consulter
Transformez plusieurs listes avec l'instruction for en même temps en Python
Analyse de données avec python 2
Python: analyse des séries chronologiques
Bases de Python ② pour déclaration
Analyse des séries chronologiques 1 Principes de base
Modèle d'analyse de données Python
Analyse d'association en Python
Analyse de données avec Python
Analyse de régression avec Python
Créez votre propre Big Data en Python pour validation
Avoir réussi l'examen d'analyse des données de certification d'ingénieur Python
Ce que je suis entré dans Python pour la première fois
J'ai essayé Python sur Mac pour la première fois.
[Pour les débutants] Comment étudier le test d'analyse de données Python3
Exécutez avec CentOS7 + Apache2.4 + Python3.6 pour le moment
[Python] Mesure et affiche le temps nécessaire au traitement
Enregistrer une tâche dans cron pour la première fois
Python 3.4 Créer un environnement Windows7-64bit (pour l'analyse des séries chronologiques financières)
Affiche l'heure à partir du moment où le programme a été lancé en python
Comprenez attentivement la distribution exponentielle et dessinez en Python
J'ai essayé python pour la première fois avec heroku
Visualisez les données et saisissez la corrélation en même temps
Tracer et comprendre la distribution normale multivariée en Python
Comprendre attentivement la distribution de Poisson et dessiner en Python
Ne pas être conscient du contenu des données en python
Liste du code Python utilisé dans l'analyse de Big Data
[CovsirPhy] Package Python COVID-19 pour l'analyse de données: modèle SIR-F
[CovsirPhy] Package Python COVID-19 pour l'analyse des données: analyse des tendances S-R
Arrêtez de penser à une utilisation dans les concours d'analyse de données