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 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 :