我有一个具有以下功能的数据集:
[coord_x, coord_y, coord_z, xdot, ydot, zdot]
epoch sat_id x y z Vx Vy Vz
0 2014-01-01 00:00:00.000 0 -8855.823863 13117.780146 -20728.353233 -0.908303 -3.808436 -2.022083
1 2014-01-01 00:46:43.000 0 -10567.672384 1619.746066 -24451.813271 -0.302590 -4.272617 -0.612796
2 2014-01-01 01:33:26.001 0 -10578.684043 -10180.467460 -24238.280949 0.277435 -4.047522 0.723155
3 2014-01-01 02:20:09.001 0 -9148.251857 -20651.437460 -20720.381279 0.715600 -3.373762 1.722115
4 2014-01-01 03:06:52.002 0 -6719.092336 -28929.061629 -14938.907967 0.992507 -2.519732 2.344703
我定义了一个函数,它获取这些坐标并返回元组,如下所示:
(a, e, i, w, Om, theta) = cart2kep(coord_x, coord_y, coord_z, xdot, ydot, zdot)
我想在初始数据帧中添加a、e、I、w、Om、θ作为额外功能: 我怎样才能有效地做到这一点? 目前,我的做法如下:
out = df.apply(lambda x: cart2kep(x[2], x[3], x[4], x[5], x[6], x[7]), axis = 1)
out = out.apply(pd.Series, index = ['a', 'e', 'i', 'w', 'Om', 'theta'])
df = df.join(out)
执行时间太长。有没有更像Python的方法
先谢谢你
更改函数,使其返回列表而不是元组。 然后,使用
pd.DataFrame.apply
:的
result_type
参数相关问题 更多 >
编程相关推荐