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)
I found a faster solution than what @elyase suggested:
np.sqrt(np.square(df).sum(axis=1))
Numpy provides norm... Use:
np.linalg.norm(df[['X','Y','Z']].values,axis=1)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With