如何将分类索引转换为浮点数?

时间:2016-10-06 19:15:26

标签: python pandas

我在熊猫数据框中有一个风向的分类索引。

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?

2 个答案:

答案 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')