DataFrame 6 自定義函式

2022-09-19 19:54:12 字數 3397 閱讀 4128

如果想要應用自定義的函式,或者把其他庫中的函式應用到 pandas 物件中,有以下三種方法:

如何從上述函式中選擇適合的函式,這取決於函式的操作物件。下面介紹了三種方法的使用。

通過給 pipe() 函式傳遞乙個自定義函式和適當數量的引數值,從而操作 datafrme 中的所有元素。下面示例,實現了資料表中的元素值依次加 3。

首先自定義乙個函式,計算兩個元素的加和,如下所示:

def

adder(ele1,ele2):

return ele1+ele2

然後使用自定義的函式對 dataframe 進行操作:

df = pd.dataframe(np.random.randn(4,3,columns=['

c1','

c2','c3'

])#傳入自定義函式以及要相加的數值3

df.pipe(adder,3)

完整的程式,如下所示:

import

pandas as pd

import

numpy as np

#自定義函式

defadder(ele1,ele2):

return ele1+ele2

#操作dataframe

df = pd.dataframe(np.random.randn(4,3),columns=['

c1','

c2','c3'

])#相加前print

(df)

#相加後

print(df.pipe(adder,3))

輸出結果:

c1        c2        c3

0 -0.584164 0.818250 1.590437

1 -0.258288 0.447029 1.938420

2 -0.390319 -0.580696 1.948987

3 -1.862551 -0.568357 0.979224

c1 c2 c3

0 2.415836 3.818250 4.590437

1 2.741712 3.447029 4.938420

2 2.609681 2.419304 4.948987

3 1.137449 2.431643 3.979224

import

pandas as pd

import

numpy as np

df = pd.dataframe(np.random.randn(5,3),columns=['

col1

','col2

','col3'])

#預設按列操作,計算每一列均值

輸出結果:

col1 -0.437947

col2 -0.616736

col3 0.031630

dtype: float64

傳遞軸參 axis=1, 表示逐行進行操作,示例如下:

import

pandas as pd

import

numpy as np

df = pd.dataframe(np.random.randn(5,3),columns=['

col1

','col2

','col3'])

print

(df)

輸出結果:

col1 col2 col3

0 -0.978815 -1.963001 -0.478531

1 1.082236 1.103087 0.689981

2 0.321379 -0.600465 -0.169709

3 -1.394568 -0.213248 1.284493

4 0.585636 -0.568272 -0.043831

0 -1.140116

1 0.958435

2 -0.149599

3 -0.107774

4 -0.008822

dtype: float64

求每一列中,最大值與最小值之差。示例如下:

import

pandas as pd

import

numpy as np

df = pd.dataframe(np.random.randn(5,3),columns=['

col1

','col2

','col3'])

輸出結果:

col1 1.943701

col2 2.408108

col3 1.576472

dtype: float64

import

pandas as pd

import

numpy as np

df = pd.dataframe(np.random.randn(5,3),columns=['

col1

','col2

','col3'])

#自定義函式lambda函式

print(df['

col1

'].map(lambda x:x*100))

輸出結果:

0    -18.171706

1 1.582861

2 22.398156

3 32.395690

4 -133.143543

name: col1, dtype: float64

import

pandas as pd

import

numpy as np

#自定義函式

df = pd.dataframe(np.random.randn(5,3),columns=['

col1

','col2

','col3'])

輸出結果:

col1 col2 col3

0 -1.055926 7.952690 15.225932

1 9.362457 -12.230732 7.663450

2 2.910049 -2.782934 2.073905

3 -12.008132 -1.444989 5.988144

4 2.877850 6.563894 8.192513

#求均值:

col1 0.041726

col2 -0.038841

col3 0.782879

dtype: float64

自定義函式 Excel之自定義函式

在excel中,當系統函式不能滿足我們的需求時候,我們可以使用vba自定義函式,如抓取網頁資料,翻譯詞彙,手機號歸屬地查詢等。下面將介紹2個自定義函式,idymd函式 身份證年月日性別 通過身份證號,返回性別,出生年月日。語法 idymd id 引數 id,身份證號,預設身份證長度18位。vba 如...

自定義函式

使用者自定義函式是sqlserver的資料庫物件,他不能應用於一系列改變資料庫狀態的操作。但它可以像系統函式那樣在查詢中或儲存過程中等中的程式段中使用。也可以像儲存過程一樣通過execute命令來執行,使用者自定義函式中儲存了transact sql可以返回一定的值。在sqlserver中根據函式返...

自定義函式

自定義函式有標量值函式和錶值函式。標量值函式 如果返回結果指定一種資料型別,則函式為標量值函式。錶值函式 如果返回結果指定table則函式為表值函式。基本語法示例 標量值函式 create function funadd a int return int asbegin declare b int ...