首頁 >後端開發 >Python教學 >如何將自訂函數套用至多個 Pandas DataFrame 欄位以建立新列?

如何將自訂函數套用至多個 Pandas DataFrame 欄位以建立新列?

Linda Hamilton
Linda Hamilton原創
2024-12-27 12:16:14774瀏覽

How Can I Apply a Custom Function to Multiple Pandas DataFrame Columns to Create a New Column?

將函數套用到Pandas DataFrame 中的多個欄位

考慮以下情況,其中您有一個包含多個欄位和自訂函數的DataFrame您想要按元素套用於這些列以建立新的

問題:

假設您有一個包含三列的DataFrame:

df = pd.DataFrame({'ID':['1','2','3'], 'col_1': [0,2,3], 'col_2':[1,4,5]})

和一個函數:

def get_sublist(sta, end):
    return mylist[sta:end+1]

您的目標是將get_sublist套用於「col_1」和「col_2」 columns of df 以取得包含 'mylist' 對應子清單的新欄位 'col_3'。

解決方案:

要實現此目的,您可以使用以下命令Pandas 操作:

df['col_3'] = df.apply(lambda x: get_sublist(x.col_1, x.col_2), axis=1)

以下是code:

  • df.apply():將給定函數依元素套用到DataFrame 的每一行。
  • lambda x:接受單一參數 x 的匿名函數,它代表 DataFrame 的一行。
  • x:包含「col_1」和「col_2」列值的 DataFrame 行物件目前迭代。
  • get_sublist(x.col_1, x.col_2):使用目前行中的「col_1」和「col_2」值呼叫 get_sublist 函式。
  • axis=1:指定函數應套用於DataFrame 的每一行,從而產生一個新的

使用此方法,生成的DataFrame 將具有以下結構:

  ID  col_1  col_2            col_3
0  1      0      1       ['a', 'b']
1  2      2      4  ['c', 'd', 'e']
2  3      3      5  ['d', 'e', 'f']

請注意,此解決方案可讓您將任何自訂函數傳遞給apply() 方法並將其同時應用於多個列。透過 x.col_name 存取列值,您可以安全地使用列名稱,即使它們包含空格或與現有 DataFrame 屬性同名。

以上是如何將自訂函數套用至多個 Pandas DataFrame 欄位以建立新列?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn