![](/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.