如果想要應用自定義的函式,或者把其他庫中的函式應用到 pandas 物件中,有以下三種方法:
如何從上述函式中選擇適合的函式,這取決於函式的操作物件。下面介紹了三種方法的使用。
通過給 pipe() 函式傳遞乙個自定義函式和適當數量的引數值,從而操作 datafrme 中的所有元素。下面示例,實現了資料表中的元素值依次加 3。
首先自定義乙個函式,計算兩個元素的加和,如下所示:
defadder(ele1,ele2):
return ele1+ele2
然後使用自定義的函式對 dataframe 進行操作:
df = pd.dataframe(np.random.randn(4,3,columns=['c1','
c2','c3'
])#傳入自定義函式以及要相加的數值3
df.pipe(adder,3)
完整的程式,如下所示:
importpandas 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 c30 -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傳遞軸參 axis=1, 表示逐行進行操作,示例如下: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
import求每一列中,最大值與最小值之差。示例如下:pandas as pd
import
numpy as np
df = pd.dataframe(np.random.randn(5,3),columns=['
col1
','col2
','col3'])
(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
importpandas 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
importpandas 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.1717061 1.582861
2 22.398156
3 32.395690
4 -133.143543
name: col1, dtype: float64
importpandas 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 ...