日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

pandas進階教程之Dataframe的apply方法_python

作者:凱旋.Lau ? 更新時間: 2022-11-13 編程語言

apply方法介紹

方法形式為 apply(func, axis=0, raw=False, result_type=None, agrs=(), **kwargs),沿Dataframe的軸應用func函數。

傳遞給函數的對象是Series對象,當axis=0時,其索引是Dataframe的索引;當axis=1時,其索引是Dataframe的列。

默認情況下,result_type=None,最終返回的類型是從func函數的返回推斷出來的,否則它就取決于result_type參數。

參數解析:

  • func:函數,要應用于每一列或每一行的函數。
  • axis:默認為0,0對應行索引,將func函數應用于每一列;1對應列,將函數應用于每一行。
  • raw:布爾值,默認為False,確定行或列是否作為Series或ndarray對象傳遞。
    • False:將每一行或每一列作為一個Series對象傳遞給函數;
    • True:函數將接收ndarray對象。
  • result_type:可選值有expand,reduce,broadcast,None,默認為None。
    • 默認為None時,返回結果取決于func函數的返回值,類似列表的結果將返回這些結果組成的Series,如果返回Series,則會將Series擴展為列。
    • expand:在axis=1時其作用,類似列表的結果將變成列。
    • reduce:在axis=1時其作用,如果可以,返回一個Series,而不是擴展類似列表的結果。
    • broadcast:在axis=1時其作用,結果將被廣播到Dataframe的原始形狀,原始行索引和列將會被保留。
  • args:元組,除了數組和Series之外,要傳遞給func的位置參數。
  • **kwargs:傳遞給func的附加關鍵字參數。

返回:

  • func函數沿Dataframe的給定軸應用的結果。

用例1

導入包

import pandas as pd
import numpy as np
df = pd.DataFrame([[4, 9]]*3,  columns=['A', 'B'])
df

輸出:

image-20220426172924956

使用numpy中的通用函數。

df.apply(np.sqrt)   # 相當于np.sqrt(df)

輸出:

image-20220426172937375

用例2

在任一軸上應用函數, 返回由類似列表的結果組成的Series。

df.apply(np.sum, axis=0)

輸出:

A ? ?12
B ? ?27
dtype: int64

df.apply(np.sum, axis=1)

輸出:

0 ? ?13
1 ? ?13
2 ? ?13
dtype: int64

df.apply(lambda x :[1, 2], axis=1)

輸出:

0 ? ?[1, 2]
1 ? ?[1, 2]
2 ? ?[1, 2]
dtype: object

用例3

傳遞result_type=expand,會將類似列表的結果擴展到Dataframe的列。

df.apply(lambda x : [1, 2], axis=1, result_type='expand')

輸出:

image-20220426172853152

在func函數內部返回一個Series,和傳遞result_type=expand相似,Series的索引將作為擴展的列名。

df.apply(lambda x: pd.Series([1, 2], index=['foo', 'bar']), axis=1)

輸出:

image-20220426172829809

傳遞result_type=broadcast,將會返回相同形狀的結果,無論是列表還是標量,將沿軸進行廣播,列的名稱還是原始名稱。

df.apply(lambda x: [1, 2], axis=1, result_type='broadcast')

輸出:

image-20220426172808560

總結?

原文鏈接:https://blog.csdn.net/qq_38727995/article/details/124459704

欄目分類
最近更新