我正在尝试使用有意义的类别名称进行countplot
。数据集使用整数作为类别的代码,这些整数值显示在图中,而不是我指定的名称。
import pandas
# bug fix
pandas.set_option('display.float_format', lambda x:'%f'%x)
import seaborn
import matplotlib.pyplot
s = pandas.Series([1,2,3,1,2,3,1])
print(s)
s = s.astype('category')
print(s)
s.cat.rename_categories(["A", "B", "C"])
print(s)
seaborn.countplot(x = s)
此代码生成一个原始类别值为1,2和3的图。我想要A,B和C。
print(s)
输出为:
0 1
1 2
2 3
3 1
4 2
5 3
6 1
dtype: int64
0 1
1 2
2 3
3 1
4 2
5 3
6 1
dtype: category
Categories (3, int64): [1, 2, 3]
0 1
1 2
2 3
3 1
4 2
5 3
6 1
dtype: category
Categories (3, int64): [1, 2, 3]
所以它正在改变数据类型但不改变值。但是,当我以交互方式重命名时,我得到以下内容,但print(s)
仍会返回数字名称。
In[108]: s.cat.rename_categories(["A", "B", "C"])
Out[108]:
0 A
1 B
2 C
3 A
4 B
5 C
6 A
dtype: category
Categories (3, object): [A, B, C]
如何使用字母而不是数字?
答案 0 :(得分:2)