pandas中的apply函數(shù)用于對DataFrame或Series中的數(shù)據(jù)進(jìn)行逐行或逐列的操作。它可以接受一個(gè)函數(shù)作為參數(shù),并將該函數(shù)應(yīng)用于每一行或每一列的數(shù)據(jù)。
apply函數(shù)的用法有兩種常見的方式:
對DataFrame的每一行或每一列應(yīng)用函數(shù):可以通過指定axis參數(shù)來選擇是對行還是列進(jìn)行操作。默認(rèn)情況下,axis為0表示對每一列應(yīng)用函數(shù),axis為1表示對每一行應(yīng)用函數(shù)。 例如,對DataFrame的每一列進(jìn)行求和操作:
import pandas as pd
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
def sum_column(column):
return column.sum()
result = df.apply(sum_column)
print(result)
輸出:
A 6
B 15
dtype: int64
對DataFrame的每個(gè)元素或Series的每個(gè)元素應(yīng)用函數(shù):可以通過指定axis參數(shù)為None來實(shí)現(xiàn)對每個(gè)元素的操作。 例如,對DataFrame的每個(gè)元素進(jìn)行平方操作:
import pandas as pd
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
def square(x):
return x**2
result = df.applymap(square)
print(result)
輸出:
A B
0 1 16
1 4 25
2 9 36
需要注意的是,apply函數(shù)會對每一行或每一列的數(shù)據(jù)進(jìn)行迭代,因此在使用apply函數(shù)時(shí),應(yīng)盡量避免使用循環(huán)等耗時(shí)操作,以提高性能。