我想应用一个函数foo(df.column,df.index,df.current value)
并以相同的数据帧结束,但是每个单元格以最快的方式等于该函数的结果。
def foo(dates, name, value):
return black_box_function(dates, name, value)
我希望日期为单元格的列,名称为数据帧单元格内容的索引和值。
我尝试将其实现为df.apply(foo(df['index'], df['column'])
,但不起作用。
答案 0 :(得分:0)
您可以使用np.vectorize
创建一个矢量化函数,该函数可以将数据框列作为参数(或任何其他类似数组的类型)。请参阅下面的示例
(请注意,传递给矢量化函数的参数的长度必须全部相同):
def foo(val1, val2, val3):
""" do some stuff in here with your function parameters """
return val1 * val2 * val3
# this will create a new column in your dataframe called 'new_col'
# each row in df.new_col will be the result of foo applied to that row
df['new_col'] = np.vectorize(foo)(df.col1, df.col2, df.col3)
请参阅np.vectorize的文档。