Maison >développement back-end >Tutoriel Python >Quand utiliser Pandas `map`, `applymap` ou `apply` ?

Quand utiliser Pandas `map`, `applymap` ou `apply` ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-07 08:36:16833parcourir

When to Use Pandas `map`, `applymap`, or `apply`?

Choisir parmi map, applymap et apply dans Pandas

Lorsque vous travaillez avec Pandas DataFrames, il est souvent nécessaire d'appliquer des fonctions aux données de diverses manières. Trois méthodes couramment utilisées pour la vectorisation sont map, applymap et apply. Chacun a son propre objectif et sa propre application.

Map

map est une méthode spécifique aux objets Series et applique une fonction à chaque élément de la série. Il attend une fonction qui prend une seule valeur en entrée et renvoie une seule valeur.

Exemple :

import pandas as pd

# Create a Series
series = pd.Series([1, 2, 3, 4, 5])

# Apply a function to each element
def square(x):
    return x**2

# Apply the function to the series using map
squared_series = series.map(square)

print(squared_series)

Sortie :

0    1
1    4
2    9
3   16
4   25
dtype: int64

Applymap

applymap applique une fonction à chaque élément d'un DataFrame, effectuant l'opération par élément. Comme map, il attend une fonction qui prend une seule valeur en entrée et renvoie une seule valeur.

Exemple :

# Create a DataFrame
df = pd.DataFrame({'a': [1, 2, 3], 'b': [4, 5, 6]})

# Apply a function to each element of the DataFrame
def format_number(x):
    return "{:.2f}".format(x)

# Apply the function to the DataFrame using applymap
formatted_df = df.applymap(format_number)

print(formatted_df)

Sortie :

   a  b
0  1.00  4.00
1  2.00  5.00
2  3.00  6.00

Appliquer

apply applique une fonction à chaque ligne ou colonne d'un DataFrame, en fonction du paramètre d'axe. Il est plus polyvalent que map et applymap et peut gérer des fonctions qui nécessitent de transmettre plusieurs valeurs en entrées.

Exemple :

# Apply a function to each row of the DataFrame
def get_max_min_diff(row):
    return row.max() - row.min()

max_min_diff = df.apply(get_max_min_diff, axis=1)

print(max_min_diff)

Sortie :

0    3.00
1    3.00
2    3.00
dtype: float64

Utilisation Résumé

  • map : Application de fonction par élément à Series
  • applymap : Application de fonction par élément à DataFrame
  • apply : application de fonctions ligne/colonne à DataFrame, avec flexibilité gestion des entrées/sorties

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn