我在熊猫数据框中有一个风向的分类索引。
print (self.Groups.index)
CategoricalIndex([22.5, 67.5, 112.5, 157.5, 202.5, 247.5, 292.5, 337.5],
categories=[22.5, 67.5, 112.5, 157.5, 202.5, 247.5, 292.5, 337.5],
ordered=True, name='Dir', dtype='category')
我正在尝试使用此指数绘制风玫瑰,例如。
ax.bar(self.Groups.index,self.Groups['wind_speed'])
但我需要将索引转换为弧度才能在极坐标图上正确显示。
有没有办法将Categorical索引转换为float?
答案 0 :(得分:4)
使用astype
执行转换:
self.Groups.index = self.Groups.index.astype('float')
答案 1 :(得分:2)
您可以使用to_numeric
函数转换索引。如果发生故障,它可以更好地控制预期的行为。
# Test data
index = pd.CategoricalIndex([22.5, 67.5, 112.5, 157.5, 202.5, 247.5, 292.5, 337.5],
categories=[22.5, 67.5, 112.5, 157.5, 202.5, 247.5, 292.5, 337.5],
ordered=True, name='Dir', dtype='category')
index
df = DataFrame([22.5, 67.5, 112.5, 157.5, 202.5, 247.5, 292.5, 337.5], index=index)
# Converting the index
df.index = pd.to_numeric(df.index)
print(df.index)
# Float64Index([22.5, 67.5, 112.5, 157.5, 202.5, 247.5, 292.5, 337.5], dtype='float64', name='Dir')