將函數套用到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:
使用此方法,生成的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中文網其他相關文章!