一、何為pandas DataFrame
要使用DataFrame apply函數進行數據處理,首先需要了解pandas DataFrame是什麼。DataFrame是一個類似於表格的數據結構,由行和列組成,每列可以有不同的數據類型。DataFrame可以方便地處理數值型、字符串型、時間序列等多種數據類型。在pandas中,DataFrame是很常見的一個數據類型,我們可以通過DataFrame對數據進行切片、篩選、操作、處理等多種操作。
二、DataFrame apply方法的作用
apply方法是pandas中的一個重要方法,它常用於對DataFrame的某一個軸應用一個函數,以實現數據處理。在DataFrame中,軸是指DataFrame的行或列。apply方法可以接受多種函數,包括lambda函數、自己編寫的函數等等。
apply方法的用途之一是能夠把一個函數應用於DataFrame 的軸並指定軸的方向。例如對於DataFrame 的一個列,我們可以通過 apply() 方法來統計其中每個元素的長度值,並創建一個新列將其保存。
三、使用apply方法實現對DataFrame數據進行處理的例子
下面我們以實例來說明如何使用Python的DataFrame apply函數進行數據處理。
import pandas as pd import numpy as np # 創建一個DataFrame df = pd.DataFrame({ 'A': ['A0', 'A1', 'A2', 'A3'], 'B': ['B0', 'B1', 'B2', 'B3'], 'C': ['C0', 'C1', 'C2', 'C3'], 'D': ['D0', 'D1', 'D2', 'D3'] }) # 使用 apply() 方法將每個值逐個賦值,並使用這些值創建一個新的列 df['length_of_A'] = df['A'].apply(lambda x: len(x)) # 打印輸出新的DataFrame print(df) #輸出結果 A B C D length_of_A 0 A0 B0 C0 D0 2 1 A1 B1 C1 D1 2 2 A2 B2 C2 D2 2 3 A3 B3 C3 D3 2
以上例子中,我們新建了一個DataFrame,然後定義了一個apply方法,接着通過lambda表達式來統計A列中每個元素的長度,並創建一個新的列length_of_A。最後我們輸出了新的DataFrame,並可以看到新的一列長度字段被成功添加。
四、使用apply方法處理DataFrame中的每一個列
除了應用於每一個元素,我們還可以用apply函數處理每一個列。下面我們將應用apply方法來統計每一列的平均值、最大值以及最小值。
import pandas as pd import numpy as np # 創建一個DataFrame df = pd.DataFrame({ 'A': [1, 2, 3, 4], 'B': [5, 6, 7, 8], 'C': [9, 10, 11, 12] }) # 使用 apply() 方法處理每列的數據 df.apply([np.mean, np.max, np.min], axis=0) #打印輸出結果 print(df.apply([np.mean, np.max, np.min], axis=0)) #輸出結果 A B C amax 4.0 8.0 12.0 amin 1.0 5.0 9.0 mean 2.5 6.5 10.5
以上例子中,我們新建了一個DataFrame,然後使用apply方法對每一列應用了mean、amax、amin這三個方法。最後我們輸出了新的結果,可以看到分別統計了每一列的最大值、最小值、平均值。
五、結合Lambda表達式和apply方法進行數據處理
在實際情況下,我們常常需要對一些列進行處理。下面我們以對一列數據進行平方操作來說明如何結合lambda表達式和apply方法進行數據處理。
import pandas as pd # 創建一個DataFrame df = pd.DataFrame({ 'A': [1, 2, 3, 4], 'B': [5, 6, 7, 8], 'C': [9, 10, 11, 12] }) # 使用 apply() 方法結合 lambda 表達式對一列數據進行平方操作 df['A_Square'] = df['A'].apply(lambda x: x**2) # 打印輸出結果 print(df) #輸出結果 A B C A_Square 0 1 5 9 1 1 2 6 10 4 2 3 7 11 9 3 4 8 12 16
以上例子中,我們新建了一個DataFrame,然後使用df[‘A’].apply()方法將lambda表達式應用在A列的每一個元素上並創建了新列A_Square,我們成功地對該數據進行了平方處理。
六、結合applymap()方法對DataFrame進行全局數據處理
applymap()方法可以對DataFrame中的每一個元素應用一個函數,同時適用於所有元素,並將結果保存在一個新的DataFrame中。
import pandas as pd import numpy as np # 創建一個DataFrame df = pd.DataFrame({ 'A': [1, 2, 3, 4], 'B': [5, 6, 7, 8], 'C': [9, 10, 11, 12] }) # 使用 applymap() 方法以及 lambda 表達式對DataFrame進行處理 df = df.applymap(lambda x: x**2) # 打印輸出結果 print(df) #輸出結果 A B C 0 1 25 81 1 4 36 100 2 9 49 121 3 16 64 144
以上例子中,我們新建了一個DataFrame,然後使用applymap方法將lambda表達式應用於每一個元素上,實現了全局數據處理,在新的DataFrame中成功完成了平方處理。
結論
以上便是如何使用Python的DataFrame apply函數進行數據處理的方法。總的來說,apply函數提供了一種方便的方式來應用自定義函數或lambda表達式到DataFrame中的數據,並通過平方、統計函數等方法來實現數據處理。記住,apply方法的應用十分靈活,可以替換成自己的特定函數,以適應不同的數據處理需求。
原創文章,作者:DFHS,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/142724.html