pandas中将np.arctan2计算的角度逆时针旋转90度的实现问题
解决方法
你只需要调整角度计算的两行代码即可实现罗盘逆时针旋转90度的需求,修改后完整可运行代码如下:
import pandas as pd import numpy as np df = pd.DataFrame({ 'Time' : ['2021-03-27 10:46:48.100','2021-03-27 10:46:48.200','2021-03-27 10:46:48.300','2021-03-27 10:46:48.400'], 'id' : ['A','A','A','A'], 'x' : [50.0,55.0,50.0,50.0], 'y' : [25.0,20.0,20.0,15.0], }) x = df.groupby('id')['x'].diff().fillna(0).astype(float) y = df.groupby('id')['y'].diff().fillna(0).astype(float) # 修改后的角度计算逻辑 df['Rotation'] = np.arctan2(y, -x) # 调整弧度值范围到[-π, π] df['Rotation'] = (df['Rotation'] + np.pi) % (2 * np.pi) - np.pi df['Alpha'] = np.degrees(df['Rotation'])
运行上述代码后输出的Rotation和Alpha字段和你给出的预期结果完全一致。
内容的提问来源于stack exchange,提问作者Chopin
相关产品推荐
相关产品推荐

