Rumah >pembangunan bahagian belakang >Tutorial Python >Bila hendak menggunakan Panda `map`, `applymap` atau `apply`?

Bila hendak menggunakan Panda `map`, `applymap` atau `apply`?

Linda Hamilton
Linda Hamiltonasal
2024-12-07 08:36:16810semak imbas

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

Memilih Antara peta, applymap dan gunakan dalam Pandas

Apabila bekerja dengan Pandas DataFrames, selalunya perlu menggunakan fungsi pada data dalam pelbagai cara. Tiga kaedah yang biasa digunakan untuk pengvektoran ialah peta, peta aplikasi dan gunakan. Setiap satu mempunyai tujuan dan aplikasi tersendiri.

Peta

peta ialah kaedah khusus untuk objek Siri dan menggunakan fungsi pada setiap elemen dalam Siri. Ia mengharapkan fungsi yang mengambil satu nilai sebagai input dan mengembalikan satu nilai.

Contoh:

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)

Output:

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

Applymap

applymap menggunakan fungsi pada setiap elemen sesuatu DataFrame, melaksanakan operasi dari segi elemen. Seperti peta, ia menjangkakan fungsi yang mengambil satu nilai sebagai input dan mengembalikan satu nilai.

Contoh:

# 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)

Output:

   a  b
0  1.00  4.00
1  2.00  5.00
2  3.00  6.00

Apply

apply menggunakan fungsi pada setiap baris atau lajur DataFrame, bergantung pada parameter paksi. Ia lebih serba boleh berbanding peta dan peta pakai serta boleh mengendalikan fungsi yang memerlukan menghantar berbilang nilai sebagai input.

Contoh:

# 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)

Output:

0    3.00
1    3.00
2    3.00
dtype: float64

Penggunaan Ringkasan

  • peta: Aplikasi fungsi mengikut elemen kepada Siri
  • applymap: Aplikasi fungsi mengikut elemen ke DataFrame
  • mohon: Aplikasi fungsi baris/lajur ke DataFrame, dengan pengendalian input/output yang fleksibel

Atas ialah kandungan terperinci Bila hendak menggunakan Panda `map`, `applymap` atau `apply`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn