python pandas自定義函數之apply函數用法


python pandas自定義函數

pandas是數據分析的利器,它內置許多的函數,我之前的一篇博客對pandas的一些常用函數都做了介紹,但是很多時候光是他本身自帶的函數可能還不夠用,所以這里介紹一下pandas數據類型DataFrame的一個方法,可以讓我們的自定義函數運用在上面。
下面看一段代碼

import pandas as pd
import os

def f(column):
    print(type(column))

df=pd.DataFrame({'column1':[1,2,5,8,63],'column2':[5,6,85,3,5],'column3':[54,36,45,85,69]},index=['fs','fd','f','fa','df'])
print(df)
df.apply(f)

這段代碼的輸出結果如下:

在這里插入圖片描述
上述代碼我們定義了一個函數f,通過apply運用在我們創建的dataframe數據類型上,這里你其實可以發現,f中需要傳遞一個參數,其實這里你可以發現,dataframe為f傳遞了三個參數,分別是三個Series對象,其實啊!這里默認傳遞列參數,然后我們就可以通過這個方法使用自定義函數對列進行操作。
下面再看一段有趣的事例代碼:


import pandas as pd
import os
import numpy as np
df=pd.DataFrame({'column1':[1,2,5,8,63],'column2':[5,6,85,3,5],'column3':[54,36,45,85,69]},index=['fs','fd','f','fa','df'],dtype=np.object)
print(df)
def  f2(x):
    x[3]="hello ,good boy"
    x[2]='hello ,good girl'

df.apply(f2)
print(df)

os.system("pause")

結果如下:
在這里插入圖片描述
你會發現這樣的修改結果,通過這個案例,或許你可以意識到自定義函數的好處。

同時,apply不僅可以對列進行操作還可以對行進行操作,只需要對apply傳遞一個參數axis=0
下面我再給出一段示例代碼:


def f3(x):
    print(type(x))
    print(x)
   

df.apply(f3,axis=1)

輸出結果如下:
在這里插入圖片描述
這里有一個要注意的地方,apply對行進行操作時,是不能對元素進行賦值的,但可以進行數據類型轉換,也就是不能對行的值進行更改。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM