在 Python 中使用 Pandas DataFrame 對每一行應用函式


在本教程中,我們將學習 **列表** 最常用的方法,即 **append()** 和 **extend()**。讓我們逐一瞭解它們。

apply()

它用於將函式應用於 DataFrame 的每一行。例如,如果我們想將每一行的所有數字相乘並將其作為新列新增,那麼 apply() 方法非常有用。讓我們看看實現它的不同方法。

示例

# importing the pandas package
import pandas as pd
# function to multiply
def multiply(x, y):
   return x * y
# creating a dictionary for DataFrame
data = {
   'Maths': [10, 34, 53],
   'Programming': [23, 12, 43]
}
# creating DataFrame using the data
data_frame = pd.DataFrame(data)
# displaying DataFrame
print('--------------------Before------------------')
print(data_frame)
print()
# applying the function multiply
data_frame['Multiply'] = data_frame.apply(lambda row : multiply(row['Maths'], row['
Programming']), axis = 1)
# displaying DataFrame
print('--------------------After------------------')
print(data_frame)

輸出

如果執行上述程式,您將獲得以下結果。

--------------------Before------------------
Maths Programming
0 10 23
1 34 12
2 53 43
--------------------After------------------
Maths Programming Multiply
0 10 23 230
1 34 12 408
2 53 43 2279

示例

我們還可以使用預定義函式,如 **sum,pow** 等。

# importing the pandas package
import pandas as pd
# creating a dictionary for DataFrame
data = {
   'Maths': [10, 34, 53],
   'Programming': [23, 12, 43]
}
# creating DataFrame using the data
data_frame = pd.DataFrame(data)
# displaying DataFrame
print('--------------------Before------------------')
print(data_frame)
print()
# applying the function multiply
# using built-in sum function
data_frame['Multiply'] = data_frame.apply(sum, axis = 1)
# displaying DataFrame
print('--------------------After------------------')
print(data_frame)

輸出

如果執行上述程式,您將獲得以下結果。

--------------------Before------------------
Maths Programming
0 10 23
1 34 12
2 53 43
--------------------After------------------
Maths Programming Multiply
0 10 23 33
1 34 12 46
2 53 43 96

示例

我們還可以使用 numpy 模組中的函式。讓我們看一個例子。

# importing the pandas package
import pandas as pd
# importing numpy module for functions
import numpy as np
# creating a dictionary for DataFrame
data = {
   'Maths': [10, 34, 53],
   'Programming': [23, 12, 43]
}
# creating DataFrame using the data
data_frame = pd.DataFrame(data)
# displaying DataFrame
print('--------------------Before------------------')
print(data_frame)
print()
# applying the function multiply
# using sum function from the numpy module
data_frame['Multiply'] = data_frame.apply(np.sum, axis = 1)
# displaying DataFrame
print('--------------------After------------------')
print(data_frame)

輸出

如果執行上述程式,您將獲得以下結果。

--------------------Before------------------
Maths Programming
0 10 23
1 34 12
2 53 43
--------------------After------------------
Maths Programming Multiply
0 10 23 33
1 34 12 46
2 53 43 96

結論

透過以上方法,我們可以使用 DataFrame 的 **apply()** 方法對所有行應用函式。如果您對本教程有任何疑問,請在評論區提出。

更新於: 2019年11月1日

1K+ 次檢視

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告