Combiner Pandas avec NumPy

Pandas est construit sur NumPy, et les deux sont étroitement intégrés. Comprendre leur interaction peut rendre le traitement des données et le calcul scientifique plus efficaces.


Interconversion

Conversion entre DataFrame/Series et NumPy

Exemple

import pandas as pd
import numpy as np

# Convert DataFrame to NumPy array
df = pd.DataFrame({
    "A": [1, 2, 3],
    "B": [4, 5, 6]
})

arr = df.to_numpy()
print("DataFrame to array:")
print(arr)
print(f"Type: {type(arr)}")
print()

# Convertir une Series en tableau
s = pd.Series([1, 2, 3])
arr = s.values  # Ou s.to_numpy()
print("Series en tableau :")
print(arr)
print()

# Convertir NumPy en DataFrame
arr = np.array([[1, 2], [3, 4], [5, 6]])
df = pd.DataFrame(arr, columns=["A", "B"])
print("Tableau en DataFrame :")
print(df)

Utilisation des fonctions NumPy dans Pandas

Exemple

import pandas as pd
import numpy as np

s = pd.Series([1, 2, 3, 4, 5])

# Utiliser les fonctions NumPy
print("Valeur absolue :", np.abs(s))
print("Racine carrée :", np.sqrt(s))
print("Exponentielle :", np.exp(s))
print("Logarithme :", np.log(s))
print()

# Filtrage conditionnel
print("Valeurs supérieures à 3:")
print(s[s > 3])

Opérations vectorisées

Exemple

import pandas as pd
import numpy as np

df = pd.DataFrame({"A": [1, 2, 3], "B": [4, 5, 6]})

# Opérations vectorisées
print("A + B:", (df["A"] + df["B"]).tolist())
print("A * B:", (df["A"] * df["B"]).tolist())
print("A > B:", (df["A"] > df["B"]).tolist())
print()

# Utiliser apply pour le calcul élément par élément
result = df.apply(lambda x: np.multiply(x, 2))
print("Chaque élément * 2 :")
print(result)

Techniques de calcul numérique

Exemple

import pandas as pd
import numpy as np

df = pd.DataFrame({
    "A": [1, 2, 3, 4, 5],
    "B": [10, 20, 30, 40, 50]
})

# Calculer la variation en pourcentage de A par rapport à B
df["Taux de variation"] = np.divide(df["A"], df["B"], where=df["B"] != 0) * 100
print("Variation en pourcentage :")
print(df)
print()

# Utiliser np.where pour l'affectation conditionnelle
df["Étiquette"] = np.where(df["A"] > 3, "Grand", "Petit")
print("Étiquette conditionnelle :")
print(df)

Calcul statistique

Exemple

import pandas as pd
import numpy as np

s = pd.Series([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])

# Fonctions statistiques NumPy
print(f"Moyenne : {np.mean(s):.2f}")
print(f"Écart-type : {np.std(s):.2f}")
print(f"Maximum : {np.max(s)}")
print(f"Minimum : {np.min(s)}")
print()

# Médiane
print(f"Médiane : {np.median(s)}")

L'intégration profonde de Pandas et NumPy rend le traitement de données complexes simple et efficace.

Autres extensions