我正在尝试获取一组由N行组成的数据,并扩展每一行以包括该行中每一列的平方/立方/等(升至多少由变量j确定)。数据以pandas DataFrame开头,但可以变成numpy数组。
例如:如果该行是[3,2]并且j是3,则该行应转换为[3,2,9,9,4,27,8]
我目前有一个半工作版本,其中包含一堆嵌套的for循环,非常难看。我希望有一种更干净的方法来进行这种转换,以便调试变得更容易。
我正在寻找的行为基本上与sklearns PolynomialFeature相同,但是我正在尝试仅在numpy和/或pandas中执行此操作。
谢谢!
尝试concat
使用ignore_index
选项删除列名称中的重复项:
df = pd.DataFrame(np.arange(9).reshape(3,3))
j = 3
pd.concat([df**i for i in range(1,j+1)], axis=1,ignore_index=True)
输出:
0 1 2 3 4 5 6 7 8
0 0 1 2 0 1 4 0 1 8
1 3 4 5 9 16 25 27 64 125
2 6 7 8 36 49 64 216 343 512
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句