规范在熊猫的行

Fra*_*Fra 11 python pandas

我有一个pandas Dataframe,其中N列代表矢量的坐标(例如X,Y,Z,但可能超过3D).

我想沿着行聚合数据帧,并使用组合列的任意函数,例如:norm : (X^2 + Y^2 + Y^2).

我想做类似于这里以及此处此处所做的事情,但我想保持足够的通用,列数可以改变,它的行为就像

DataFrame.mean(axis = 1)
Run Code Online (Sandbox Code Playgroud)

要么

DataFrame.sum(axis = 1)
Run Code Online (Sandbox Code Playgroud)

Fra*_*Fra 20

我找到了比@elyase建议更快的解决方案:

np.sqrt(np.square(df).sum(axis=1))
Run Code Online (Sandbox Code Playgroud)


ntg*_*ntg 7

Numpy提供常规...使用:

np.linalg.norm(df[['X','Y','Z']].values,axis=1)
Run Code Online (Sandbox Code Playgroud)


Pet*_*ter 5

一行,使用您想要的任何函数(包括 lambda 函数),例如

df.apply(np.linalg.norm, axis=1)

或者

df.apply(lambda x: (x**2).sum()**.5, axis=1)