溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python的apply(),map(),applymap()怎么用

發布時間:2022-03-07 09:11:46 來源:億速云 閱讀:353 作者:iii 欄目:開發技術

Python的apply(), map(), applymap()怎么用

在Python中,apply()、map()applymap()是用于對數據進行操作的常用函數。它們分別適用于不同的場景,尤其是在處理Pandas數據框和列表時非常有用。本文將詳細介紹這三個函數的用法,并通過示例代碼幫助讀者更好地理解它們的功能。

1. apply()

apply()函數主要用于對Pandas數據框(DataFrame)或序列(Series)中的數據進行操作。它可以對每一行或每一列應用一個函數,并返回處理后的結果。

1.1 對Series使用apply()

apply()可以對Series中的每個元素應用一個函數。例如,假設我們有一個包含數字的Series,我們想要對每個元素進行平方操作:

import pandas as pd

# 創建一個Series
s = pd.Series([1, 2, 3, 4])

# 使用apply()對每個元素進行平方操作
s_squared = s.apply(lambda x: x**2)

print(s_squared)

輸出結果為:

0     1
1     4
2     9
3    16
dtype: int64

1.2 對DataFrame使用apply()

apply()也可以對DataFrame的每一行或每一列應用一個函數。通過指定axis參數,我們可以選擇是對行(axis=1)還是列(axis=0)進行操作。

import pandas as pd

# 創建一個DataFrame
df = pd.DataFrame({
    'A': [1, 2, 3],
    'B': [4, 5, 6],
    'C': [7, 8, 9]
})

# 對每一列求和
df_sum = df.apply(lambda x: x.sum(), axis=0)

# 對每一行求和
df_row_sum = df.apply(lambda x: x.sum(), axis=1)

print("列求和:")
print(df_sum)

print("行求和:")
print(df_row_sum)

輸出結果為:

列求和:
A     6
B    15
C    24
dtype: int64

行求和:
0    12
1    15
2    18
dtype: int64

2. map()

map()函數主要用于對Series中的每個元素進行映射操作。它接受一個函數或字典作為參數,并將Series中的每個元素替換為映射后的結果。

2.1 使用函數進行映射

import pandas as pd

# 創建一個Series
s = pd.Series([1, 2, 3, 4])

# 使用map()對每個元素進行平方操作
s_squared = s.map(lambda x: x**2)

print(s_squared)

輸出結果為:

0     1
1     4
2     9
3    16
dtype: int64

2.2 使用字典進行映射

map()還可以使用字典進行映射操作。例如,我們可以將Series中的某些值替換為字典中對應的值:

import pandas as pd

# 創建一個Series
s = pd.Series(['a', 'b', 'c', 'd'])

# 使用字典進行映射
mapping = {'a': 1, 'b': 2, 'c': 3}
s_mapped = s.map(mapping)

print(s_mapped)

輸出結果為:

0    1.0
1    2.0
2    3.0
3    NaN
dtype: float64

注意,如果字典中沒有對應的鍵,map()會返回NaN。

3. applymap()

applymap()函數用于對DataFrame中的每個元素應用一個函數。與apply()不同,applymap()是對DataFrame中的每個元素進行操作,而不是對行或列進行操作。

import pandas as pd

# 創建一個DataFrame
df = pd.DataFrame({
    'A': [1, 2, 3],
    'B': [4, 5, 6],
    'C': [7, 8, 9]
})

# 使用applymap()對每個元素進行平方操作
df_squared = df.applymap(lambda x: x**2)

print(df_squared)

輸出結果為:

   A   B   C
0  1  16  49
1  4  25  64
2  9  36  81

4. 總結

  • apply():適用于對Pandas的Series或DataFrame的行/列進行操作。
  • map():適用于對Series中的每個元素進行映射操作。
  • applymap():適用于對DataFrame中的每個元素進行操作。

通過合理使用這三個函數,可以大大簡化數據處理的過程,提高代碼的可讀性和效率。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女