中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

Pandas中map(),applymap(),apply()函數如何使用

發布時間:2023-02-22 10:56:55 來源:億速云 閱讀:86 作者:iii 欄目:開發技術

本文小編為大家詳細介紹“Pandas中map(),applymap(),apply()函數如何使用”,內容詳細,步驟清晰,細節處理妥當,希望這篇“Pandas中map(),applymap(),apply()函數如何使用”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。

將函數應用于pandas對象(pandas.DataFrame,pandas.Series)時,根據所應用的函數類型以及是否將其應用于元素,行或列,使用的方法會有所不同。

指定pandas對象作為NumPy函數的參數

  • 將Pandas對象指定為函數參數

  • 是否將其應用于元素,行或列取決于函數的類型和參數的設置而有所不同

  • Pandas對象中的一些方法

Pandas對象方法的函數應用
元素功能(標量值)

  • 適用于Series的每個元素:map(),apply()

  • 應用于DataFrame的每個元素:applymap()

行和列的功能(一維數組)

  • 應用于DataFrame的每行和每列:apply()

用以下csv文件作為示例進行說明。

a,b,c,d
11,12,13,14
21,22,23,24
31,32,33,34

import pandas as pd
import numpy as np

df = pd.read_csv('./data/06/sample_header.csv')
print(df)
#     a   b   c   d
# 0  11  12  13  14
# 1  21  22  23  24
# 2  31  32  33  34

指定pandas對象作為NumPy函數的參數

可以將Pandas對象指定為NumPy函數的參數。

元素的應用

NumPy的通用函數(ufunc:應用于數組元素的函數)適用于pandas對象的每個元素。

絕對值(fabs()),平方根(sqrt()),log(log())等。

print(np.sqrt(df))
#           a         b         c         d
# 0  3.316625  3.464102  3.605551  3.741657
# 1  4.582576  4.690416  4.795832  4.898979
# 2  5.567764  5.656854  5.744563  5.830952

行/列的應用

如果將pandas對象指定為從NumPy數組的所有元素計算值的函數的參數,則默認情況下它將應用于pandas對象的每列。如果參數軸= 1,則將其應用于每行。

最大值(amax()),最小值(amin()),平均值(mean())等。

print(np.amax(df))
# a    31
# b    32
# c    33
# d    34
# dtype: int64

print(np.mean(df, axis=1))
# 0    12.5
# 1    22.5
# 2    32.5
# dtype: float64

pandas.DataFrame,pandas.Series方法

最大值,最小值,平均值,方差等也被準備為Pandas對象的方法,因此也可以直接使用它們。

同樣,在這種情況下,默認情況下也會將其應用于每一列,并且如果參數axis = 1,則會將其應用于每一行。

print(df.max())
# a    31
# b    32
# c    33
# d    34
# dtype: int64

print(df.max(axis=1))
# 0    14
# 1    24
# 2    34
# dtype: int64

Pandas對象方法的函數應用

可以使用pandas對象方法將函數應用于元素,行和列。您可以應用Python內置函數或您定義的函數。

  • 應用于Series的每個元素:map(),apply()

  • 應用于DataFrame的每個元素:applymap()

  • 應用于DataFrame的每行和每列:apply()

  • 應用于DataFrame的特定行/列元素

以上方法都返回一個新的已處理的對象,而原始對象則保持不變。沒有像dropna()或fillna()那樣的參數,因此,如果想更改原始對象本身時,

df = df.applymap(function)

如上,用原始對象替換新對象并覆蓋它。

適用于Series的每個元素:map(),apply()

將Python內置函數,匿名函數(lambda)或def定義的函數傳遞給map()或apply()的參數。

s = df['a']
print(s)
# 0    11
# 1    21
# 2    31
# Name: a, dtype: int64

f_brackets = lambda x: '[{}]'.format(x)
print(s.map(f_brackets))
# 0    [11]
# 1    [21]
# 2    [31]
# Name: a, dtype: object

def f_str(x):
    return str(x).replace('1', 'One').replace('2', 'Two').replace('3', 'Three').replace('4', 'Four')

print(s.map(f_str))
# 0      OneOne
# 1      TwoOne
# 2    ThreeOne
# Name: a, dtype: object

對于map(),如果將字典dict指定為參數,它將替換為元素。

應用于DataFrame的每個元素:applymap()

將Python的內置函數,匿名函數(lambda)或def定義的函數傳遞為applymap()的參數。

f_oddeven = lambda x: 'odd' if x % 2 == 1 else 'even'
print(df.applymap(f_oddeven))
#      a     b    c     d
# 0  odd  even  odd  even
# 1  odd  even  odd  even
# 2  odd  even  odd  even

應用于DataFrame的每行和每列:apply()

將適用于一維數組的函數傳遞給apply()的參數。默認情況下,它應用于每列,如果axis = 1,則應用于每行。

f_maxmin = lambda x: max(x) - min(x)
print(df.apply(f_maxmin))
# a    20
# b    20
# c    20
# d    20
# dtype: int64

print(df.apply(f_maxmin, axis=1))
# 0    3
# 1    3
# 2    3
# dtype: int64

應用于DataFrame的特定行/列元素

由于沒有方法僅將功能應用于DataFrame的特定行/列元素,可執行以下方法。

  • 選擇行/列并應用帶有map()或apply()的功能

  • 覆蓋原始行/列

df['b'] = df['b'].map(f_str)
print(df)
#     a         b   c   d
# 0  11    OneTwo  13  14
# 1  21    TwoTwo  23  24
# 2  31  ThreeTwo  33  34

df.iloc[2] = df.iloc[2].map(f_str)
print(df)
#           a         b           c          d
# 0        11    OneTwo          13         14
# 1        21    TwoTwo          23         24
# 2  ThreeOne  ThreeTwo  ThreeThree  ThreeFour

讀到這里,這篇“Pandas中map(),applymap(),apply()函數如何使用”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。

向AI問一下細節

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

AI

炉霍县| 右玉县| 白银市| 华蓥市| 凭祥市| 兴文县| 铁力市| 阿拉善左旗| 鸡东县| 曲阳县| 仁怀市| 嘉祥县| 伊吾县| 松潘县| 都江堰市| 乐清市| 南充市| 长兴县| 彩票| 永康市| 浦城县| 桂东县| 正定县| 兴宁市| 新龙县| 洞口县| 河南省| 京山县| 石狮市| 牟定县| 革吉县| 巴中市| 永丰县| 无极县| 团风县| 临武县| 广宗县| 兴宁市| 邢台县| 金门县| 科技|