我以pandas文档为例。让我们说在阅读excel文件之后我有一个系列
import pandas as pd
s = pd.Series(["a","b","c","a"], dtype="category")
我知道我可以通过
获得不同的类别scat=s.cat.categories
print scat
我得到了
Index([u'a', u'b', u'c'], dtype='object')
我想知道将此列表显示为列的好方法是什么。像
这样的东西a
b
c
我可以通过u'
摆脱np.asarray
,但仍然无法获得我需要的格式。
答案 0 :(得分:8)
当你说“出现”作为专栏时,我不确定你的意思。
您可以通过以下方式创建列表而不是索引:
>>> s.cat.categories.tolist()
['a', 'b', 'c']
或者您可以使用for循环在列结构中打印出来:
for c in s.cat.categories:
print c
a
b
c
或者您可以创建一个系列(或数据框):
>>> pd.Series(s.cat.categories)
0 a
1 b
2 c
dtype: object
>>> pd.DataFrame(s.cat.categories)
0
0 a
1 b
2 c
答案 1 :(得分:5)
我认为没问题 - 'u'
表示unicode
字符串:
s = pd.Series(["a","b","c","a"], dtype="category")
print s
0 a
1 b
2 c
3 a
dtype: category
Categories (3, object): [a, b, c]
scat=s.cat.categories
print scat
Index([u'a', u'b', u'c'], dtype='object')
print scat[0]
a
print type(scat[0])
<type 'str'>
如果您想要不使用循环的打印列,请使用numpy reshape
:
print len(scat)
3
print scat.values.reshape(len(scat),1)
[['a']
['b']
['c']]