Python Tutoriel Pandas : DataFrame, plage de dates, utilisation de Pandas

Qu'est-ce que les Pandas Python?

Pandas est une bibliothèque open source qui vous permet d'effectuer des manipulations et des analyses de données dans Python. Pandas Python La bibliothèque offre la manipulation et les opérations de données pour les tableaux numériques et les séries chronologiques. Pandas fournit un moyen simple de créer, de manipuler et de gérer les données. Elle est construite sur NumPy, ce qui signifie qu'elle a besoin de NumPy pour fonctionner.

Pourquoi utiliser Pandas ?

Les data scientists utilisent Pandas dans Python pour ses avantages suivants :

  • Gère facilement les données manquantes
  • Il utilise Série pour structure de données unidimensionnelle et DataFrame pour une structure de données multidimensionnelle
  • Il fournit un moyen efficace de découper les données
  • Il offre un moyen flexible de fusionner, concaténer ou remodeler les données
  • Il comprend un puissant outil de séries chronologiques avec lequel travailler

En un mot, Pandas est une bibliothèque utile dans l'analyse des données. Il peut être utilisé pour effectuer des manipulations et des analyses de données. Les Pandas fournissent des structures de données puissantes et faciles à utiliser, ainsi que les moyens d'effectuer rapidement des opérations sur ces structures.

Comment installer Pandas ?

Maintenant dans ce Python Tutoriel Pandas, nous apprendrons comment installer Pandas dans Python.

Pour installer la bibliothèque Pandas, veuillez vous référer à notre tutoriel Comment installer TensorFlow. Pandas est installé par défaut. Dans les cas éloignés, les pandas ne sont pas installés.

Vous pouvez installer Pandas en utilisant :

  • Anaconda : conda install -c anaconda pandas
  • In Jupyter Carnet de notes :
import sys
!conda install --yes --prefix {sys.prefix} pandas

Qu'est-ce qu'un DataFrame Pandas ?

Cadre de données Pandas est un tableau bidimensionnel avec une structure de données étiquetée ayant différents types de colonnes. Un DataFrame est un moyen standard de stocker des données sous forme de tableau, avec des lignes pour stocker les informations et des colonnes pour nommer les informations. Par exemple, le prix peut être le nom d'une colonne et 2,3,4 peuvent être les valeurs du prix.

Data Frame est bien connu des statisticiens et autres praticiens des données.

Ci-dessous, une image d'un bloc de données Pandas :

Cadre de données Pandas

Qu'est-ce qu'une série ?

Une série est une structure de données unidimensionnelle. Il peut avoir n’importe quelle structure de données comme un entier, un flottant et une chaîne. C'est utile lorsque vous souhaitez effectuer un calcul ou renvoyer un tableau unidimensionnel. Une série, par définition, ne peut pas avoir plusieurs colonnes. Dans ce dernier cas, veuillez utiliser la structure de trame de données.

Python La série Pandas présente les paramètres suivants :

  • Données : peut être une liste, un dictionnaire ou une valeur scalaire
pd.Series([1., 2., 3.])
0    1.0
1    2.0
2    3.0
dtype: float64

Vous pouvez ajouter l'index avec index. Cela aide à nommer les lignes. La longueur doit être égale à la taille de la colonne

pd.Series([1., 2., 3.], index=['a', 'b', 'c'])

Ci-dessous, vous créez une série Pandas avec une valeur manquante pour les troisièmes lignes. Attention, valeurs manquantes dans Python sont notés « NaN ». Vous pouvez utiliser numpy pour créer artificiellement la valeur manquante : np.nan

pd.Series([1,2,np.nan])

Sortie

0    1.0
1    2.0
2    NaN
dtype: float64

Créer un DataFrame Pandas

Maintenant, dans ce didacticiel Pandas DataFrame, nous allons apprendre à créer Python Trame de données Pandas :

Vous pouvez convertir un tableau numpy en une trame de données pandas avec pd.Data frame(). L’inverse est également possible. Pour convertir une trame de données pandas en tableau, vous pouvez utiliser np.array()

## Numpy to pandas
import numpy as np
h = [[1,2],[3,4]] 
df_h = pd.DataFrame(h)
print('Data Frame:', df_h)

## Pandas to numpy
df_h_n = np.array(df_h)
print('Numpy array:', df_h_n)
Data Frame:    0  1
0  1  2
1  3  4
Numpy array: [[1 2]
 [3 4]]

Vous pouvez également utiliser un dictionnaire pour créer une trame de données Pandas.

dic = {'Name': ["John", "Smith"], 'Age': [30, 40]}
pd.DataFrame(data=dic)
Âge Nom
0 30 John
1 40 Smith

Données sur la plage Pandas

Les pandas disposent d'une API pratique pour créer une plage de dates. Apprenons avec Python Exemples de pandas :

pd.data_range(date,période,fréquence) :

  • Le premier paramètre est la date de début
  • Le deuxième paramètre est le nombre de périodes (facultatif si la date de fin est précisée)
  • Le dernier paramètre est la fréquence : jour : 'J', mois : 'M' et année : 'Y'.
## Create date
# Days
dates_d = pd.date_range('20300101', periods=6, freq='D')
print('Day:', dates_d)

Sortie

Day: DatetimeIndex(['2030-01-01', '2030-01-02', '2030-01-03', '2030-01-04', '2030-01-05', '2030-01-06'], dtype='datetime64[ns]', freq='D')
# Months
dates_m = pd.date_range('20300101', periods=6, freq='M')
print('Month:', dates_m)

Sortie

Month: DatetimeIndex(['2030-01-31', '2030-02-28', '2030-03-31', '2030-04-30','2030-05-31', '2030-06-30'], dtype='datetime64[ns]', freq='M')

Inspection des données

Vous pouvez vérifier la tête ou la queue de l'ensemble de données avec head() ou tail() précédé du nom du bloc de données du panda, comme indiqué dans l'exemple Pandas ci-dessous :

Étape 1) Créez une séquence aléatoire avec numpy. La séquence comporte 4 colonnes et 6 lignes

random = np.random.randn(6,4)

Étape 2) Ensuite, vous créez un bloc de données à l'aide de pandas.

Utilisez dates_m comme index pour le bloc de données. Cela signifie que chaque ligne recevra un « nom » ou un index, correspondant à une date.

Enfin, vous donnez un nom aux 4 colonnes avec l'argument colonnes

# Create data with date
df = pd.DataFrame(random,
                  index=dates_m,
                  columns=list('ABCD'))

Étape 3) Utilisation de la fonction tête

df.head(3)
A B C D
2030-01-31 1.139433 1.318510 - 0.181334 1.615822
2030-02-28 - 0.081995 - 0.063582 0.857751 - 0.527374
2030-03-31 - 0.519179 0.080984 - 1.454334 1.314947

Étape 4) Utilisation de la fonction tail

df.tail(3)
A B C D
2030-04-30 - 0.685448 - 0.011736 0.622172 0.104993
2030-05-31 - 0.935888 - 0.731787 - 0.558729 0.768774
2030-06-30 1.096981 0.949180 - 0.196901 - 0.471556

Étape 5) Une excellente pratique pour avoir une idée des données consiste à utiliser décrire(). Il fournit les décomptes, la moyenne, la norme, le minimum, le maximum et le centile de l'ensemble de données.

df.describe()
A B C D
compter 6.000000 6.000000 6.000000 6.000000
signifier 0.002317 0.256928 - 0.151896 0.467601
std 0.908145 0.746939 0.834664 0.908910
min - 0.935888 - 0.731787 - 1.454334 - 0.527374
25 % - 0.643880 - 0.050621 - 0.468272 - 0.327419
50 % - 0.300587 0.034624 - 0.189118 0.436883
75 % 0.802237 0.732131 0.421296 1.178404
max 1.139433 1.318510 0.857751 1.615822

Données de tranche

Le dernier point de ceci Python Le didacticiel Pandas explique comment découper une trame de données Pandas.

Vous pouvez utiliser le nom de la colonne pour extraire les données d'une colonne particulière, comme indiqué dans l'exemple Pandas ci-dessous :

## Slice
### Using name
df['A']

2030-01-31   -0.168655
2030-02-28    0.689585
2030-03-31    0.767534
2030-04-30    0.557299
2030-05-31   -1.547836
2030-06-30    0.511551
Freq: M, Name: A, dtype: float64

Pour sélectionner plusieurs colonnes, vous devez utiliser deux fois le crochet, [[..,..]]

La première paire de crochets signifie que vous souhaitez sélectionner des colonnes, la deuxième paire de crochets indique les colonnes que vous souhaitez renvoyer.

df[['A', 'B']].
A B
2030-01-31 - 0.168655 0.587590
2030-02-28 0.689585 0.998266
2030-03-31 0.767534 - 0.940617
2030-04-30 0.557299 0.507350
2030-05-31 - 1.547836 1.276558
2030-06-30 0.511551 1.572085

Vous pouvez découper les lignes avec :

Le code ci-dessous renvoie les trois premières lignes

### using a slice for row
df[0:3]
A B C D
2030-01-31 - 0.168655 0.587590 0.572301 - 0.031827
2030-02-28 0.689585 0.998266 1.164690 0.475975
2030-03-31 0.767534 - 0.940617 0.227255 - 0.341532

La fonction loc est utilisée pour sélectionner les colonnes par noms. Comme d'habitude, les valeurs avant la virgule représentent les lignes et après la colonne. Vous devez utiliser les crochets pour sélectionner plusieurs colonnes.

## Multi col
df.loc[:,['A','B']]
A B
2030-01-31 - 0.168655 0.587590
2030-02-28 0.689585 0.998266
2030-03-31 0.767534 - 0.940617
2030-04-30 0.557299 0.507350
2030-05-31 - 1.547836 1.276558
2030-06-30 0.511551 1.572085

Il existe une autre méthode pour sélectionner plusieurs lignes et colonnes dans Pandas. Vous pouvez utiliser iloc[]. Cette méthode utilise l'index au lieu du nom des colonnes. Le code ci-dessous renvoie la même trame de données que ci-dessus

df.iloc[:, :2]
A B
2030-01-31 - 0.168655 0.587590
2030-02-28 0.689585 0.998266
2030-03-31 0.767534 - 0.940617
2030-04-30 0.557299 0.507350
2030-05-31 - 1.547836 1.276558
2030-06-30 0.511551 1.572085

Supprimer une colonne

Vous pouvez supprimer des colonnes en utilisant pd.drop()

df.drop(columns=['A', 'C'])
B D
2030-01-31 0.587590 - 0.031827
2030-02-28 0.998266 0.475975
2030-03-31 - 0.940617 - 0.341532
2030-04-30 0.507350 - 0.296035
2030-05-31 1.276558 0.523017
2030-06-30 1.572085 - 0.594772

Enchaînement

Vous pouvez concaténer deux DataFrame dans Pandas. Vous pouvez utiliser pd.concat()

Tout d'abord, vous devez créer deux DataFrames. Jusqu’ici tout va bien, vous êtes déjà familier avec la création de dataframes

import numpy as np
df1 = pd.DataFrame({'name': ['John', 'Smith','Paul'],
                     'Age': ['25', '30', '50']},
                    index=[0, 1, 2])
df2 = pd.DataFrame({'name': ['Adam', 'Smith' ],
                     'Age': ['26', '11']},
                    index=[3, 4])  

Enfin, vous concaténez les deux DataFrame

df_concat = pd.concat([df1,df2]) 
df_concat
Âge Le nom
0 25 John
1 30 Smith
2 50 paul
3 26 Adam
4 11 Smith

Drop_duplicates

Si un ensemble de données peut contenir des informations en double, `drop_duplicates` est un moyen facile d'exclure les lignes en double. Vous pouvez voir que `df_concat` a une observation en double, `Smith` apparaît deux fois dans la colonne `name.`

df_concat.drop_duplicates('name')
Âge Le nom
0 25 John
1 30 Smith
2 50 paul
3 26 Adam

Trier les valeurs

Vous pouvez trier la valeur avec sort_values

df_concat.sort_values('Age')
Âge Le nom
4 11 Smith
0 25 John
3 26 Adam
1 30 Smith
2 50 paul

Renommer : changement d'index

Vous pouvez utiliser rename pour renommer une colonne dans Pandas. La première valeur est le nom de la colonne actuelle et la deuxième valeur est le nouveau nom de la colonne.

df_concat.rename(columns={"name": "Surname", "Age": "Age_ppl"})
Âge_ppl Prénom
0 25 John
1 30 Smith
2 50 paul
3 26 Adam
4 11 Smith

Résumé

Vous trouverez ci-dessous un résumé de la méthode la plus utile pour la science des données avec Pandas.

importer des données lire_csv
créer une série Série
Créer une trame de données Trame de données
Créer une plage de dates date_range
retourner la tête front
queue de retour queue
Décrire décrire
tranche en utilisant le nom nom de données['nom de colonne']
Découper en utilisant des lignes nom_données[0:5]

Résumez cet article avec :