我有一个数据框,我想创建一个新列,其值由位于其他列(在同一行中)的值定义。如果我使用简单的操作(+
,-
,*
甚至abs
),这非常简单。例如:
df['new_col'] = abs(df['col1']*df['col2'] - df['col3'])
然后我在Python中定义了自己的函数并尝试执行以下操作:
df['new_col'] = my_func(df['col1'], df['col2'], df['col3'], df['col4']).
不幸的是它不起作用。我认为它不起作用的原因是my_func
包含asin
,atan
和其他无法应用于系列的函数。例如,如果我尝试abs(df['col1'])
我没有抱怨,但如果我尝试asin(df['col1'])
我收到错误消息:
TypeError: only length-1 arrays can be converted to Python scalars
有没有让我使用asin
(或我自己的函数my_func
)的技巧与使用abs
或+
的方式相同?