【发布时间】:2022-08-13 23:35:20
【问题描述】:
考虑以下简单函数:
def Powers(x):
return [x, x**2, x**3, x**4, x**5]
和输入数据框:
df = pd.DataFrame({ \'x\':(1, 2, 3, 4, 5) })
我想生成新变量:[\'Exp_1\', \'Exp_2\', \'Exp_3\', \'Exp_4\', \'Exp_5\']
当我将函数应用于数据框时,如下所示:
df[[\'Exp_1\', \'Exp_2\', \'Exp_3\', \'Exp_4\', \'Exp_5\']] = df.apply(lambda x: Powers(x.x), axis=1)
我得到:
换句话说,这些值被转置了。也就是说,1 的第 5 个指数是 1 而不是 5,5 的第一个指数是 5 而不是 1。
我在上面的电话中尝试过axis=0,但这也不起作用。我也知道我有问题,因为如果输入数据帧的长度不同,我会出错。
我该如何解决?