問題:
給定一個函數和一個具有多列的函數Pandas DataFrame,我們如何將函數逐元素套用到陣列中的每對對應值欄位?
解決方案:
有一種有效的方法可以使用Pandas 的lambda 函數和apply 方法來實現此目的:
def get_sublist(sta, end): return mylist[sta:end+1] df['col_3'] = df.apply(lambda x: get_sublist(x.col_1, x.col_2), axis=1)
這適用get_sublist 函式加入到DataFrame的每一行,使用“col_1”和“col_2”列中的值作為輸入。結果是一個新列“col_3”,其中包含計算的子列表。
用法:
考慮以下範例:
df = pd.DataFrame({'ID':['1','2','3'], 'col_1': [0,2,3], 'col_2':[1,4,5]}) mylist = ['a','b','c','d','e','f'] # Apply the function and create a new column df['col_3'] = df.apply(lambda x: get_sublist(x.col_1, x.col_2), axis=1) print(df)
輸出:
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']
以上是如何將函數逐元素套用到多個 Pandas DataFrame 欄位?的詳細內容。更多資訊請關注PHP中文網其他相關文章!