Python 数据框:将负极角更改为正

Python Data Frame: Change Negative Polar Angles to Positive

这不起作用:

df[df['angle'] < 0]] += 360

如何解决这个问题?我需要一个已经存在的 pandas 数据帧,其负角和正角更新为正极坐标角(0 到 360 度)。

有:

[-135, -90, -45, 180, 135, 90, 45, 0, etc... ] # polar 'angles' in degrees (with negatives)

想要:

[315, 270, 225, 180, 135, 90, 45, 0, etc... ] # polar 'angles' in degrees (positive only)

// 编辑(用于回复):///////////////////////////////// //////////////////////////////////////////////// ////////////////////////////////

这一行,df[df['angle'] < 0]] += 360,给出了类型错误:
"TypeError: Could not operate 360 with block values must be str, not float."

dataframe'angle'的信息是:
“名称:角度,数据类型:in64,

我原来使用的'brute force'方案是:

for i in range(len(df['angle'])):
    if df['angle'][i] < 0:
        df['angle'][i] += 360

这有效,但速度很慢,并发出警告,然后告诉我查找有关数据帧索引的文档。

使用

df['angle'] %= 360 

将所有角度转换为 [0-360) 范围内的角度,无论符号如何。这将对负度数或绝对值超过 360

的角度正常工作

示例:

-270 % 360 == 90
-675 % 360 == 45
675 % 360 == 315

如果您只想处理负度数(即允许 450 而不是将其转换为 90):

df.iloc[df.angle < 360, 'angle'] %= 360