我有一个pandas框架如下:
profile_index point_index z x y
0 0 1 -0.885429 297903.323027 6.669492e+06
1 0 2 -0.820151 297904.117752 6.669492e+06
2 0 3 -0.729671 297904.912476 6.669491e+06
3 0 4 -0.649332 297905.707201 6.669490e+06
4 1 1 -0.692186 297906.501926 6.669490e+06
5 1 2 -0.885429 297903.323027 6.669492e+06
6 1 3 -0.820151 297904.117752 6.669492e+06
3 1 4 -0.649332 297905.707201 6.669490e+06
我想创建一个新的“z_gauss”列,方法是对向量(列z)应用卷积(numpy.convolve)和高斯滤波器,这些向量对应于我的框架中具有相同“profile_index”的一组行。
我试着做一些事情data["z_gauss"] = data.groupby('profile_index').apply(lambda x: np.convolve(x, gaussian, 'same'))
其中gaussian
是高斯滤波器(向量)。但我得到一些错误,如ValueError: object too deep for desired array
你对如何进行有什么建议/提示吗?我应该把我的格子分成不同的格子吗?
1条答案
按热度按时间zed5wv101#
您希望使用transform而不是apply。这将避免插入每行具有组大小的向量: