【发布时间】:2018-05-21 19:51:23
【问题描述】:
这不起作用:
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: 无法操作 360 块值必须是 str,而不是 float。”
数据框'angle'的信息是:
"名称:角度,数据类型:in64,
我使用的原始“蛮力”解决方案是:
for i in range(len(df['angle'])):
if df['angle'][i] < 0:
df['angle'][i] += 360
这可行,但速度很慢,并且会发出警告,然后告诉我查找有关数据帧索引的文档。
【问题讨论】:
-
解释第一个和第三个结果?
-
这不起作用?
df[df.angle <0] += 360. -
它给出了一个类型错误。请参阅原始帖子中的编辑。
-
尝试将您的列转换为 int
df['angle'] = df['angle'].astype(int)
标签: python-3.x pandas polar-coordinates