![](/img/trans.png)
[英]How to apply a function to multiple columns of a Dask Data Frame in parallel?
[英]Apply a function to range of multiple columns in a Data frame
你能告訴我如何使用像x['D'] :x['A']
這樣的列范圍,而不是將所有列作為參數在下面一一列出來運行嗎?
df.loc[:,'F']=df.apply(lambda x: my_function(x['D'],x['C'],x['B'],x['A']), axis=1)
你在尋找這樣的東西嗎?
df.loc[:,'F']=df.apply(lambda x: my_function(x.loc['D':'A']), axis=1)
如果您需要參數是列列表而不是數據框:
df.loc[:,'F']=df.apply(lambda x: my_function([x for x in x.loc['D':'A']]), axis=1)
你可以嘗試做這樣的事情:
df.loc[:,'F']=df.apply(lambda x: my_function(*df.columns.difference(['F'])), axis=1)
如果你的列是有序的,你可以像這樣切片:
df.loc[:,'F']=df.apply(lambda x: my_function(*df.iloc[:,1:4])), axis=1)
假設你有一個這樣的數據框
E D C B A
______________________
0 8 9 9 6 1
1 8 4 1 4 3
2 0 4 6 9 3
並且您想將一些函數func
應用於列D
到A
,您可以嘗試
def func(x):
return sum(x[1:])
df.apply(func, axis=1)
輸出
0 25
1 12
2 22
dtype: int64
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.