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
这不起作用:
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