Fra Fra - 13 days ago 6
Python Question

Norm along row in pandas

I have a pandas Dataframe with N columns representing the coordinates of a vector (for example X, Y, Z, but could be more than 3D).

I would like to aggregate the dataframe along the rows with an arbitrary function that combines the columns, for example the norm:

(X^2 + Y^2 + Y^2)
.

I want to do something similar to what is done here and here and here but I want to keep it general enough that the number of columns can change and it behaves like

DataFrame.mean(axis = 1)


or

DataFrame.sum(axis = 1)

Fra Fra
Answer

I found a faster solution than what @elyase suggested:

np.sqrt(np.square(df).sum(axis=1))
Comments