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

