我创建了一个充满零的DataFrame,例如:
0 1 2
0 0 0 0
1 0 0 0
2 0 0 0
...
n 0 0 0
我有一个包含unicode列名称的列表,例如:
list = [u'One', u'Two', u'Three']
零的DataFrame称为a
,我正在通过以下列表创建一个新的完整DataFrame列表作为列标题:
final = pd.DataFrame(a, columns=[list])
但是,生成的DataFrame的列名不再是unicode(即它们不显示u''标记)。
我想知道为什么会这样。谢谢!
答案 0 :(得分:2)
没有理由丢失unicode,你可以通过以下方式检查:
print df.columns.tolist()
请不要使用list
,type
,id
等保留字作为变量,因为屏蔽了内置函数。还需要添加values
以将值转换为numpy array
:
a = pd.DataFrame(0, columns=range(3), index=range(3))
print (a)
0 1 2
0 0 0 0
1 0 0 0
2 0 0 0
L = [u'One', u'Two', u'Three']
final = pd.DataFrame(a.values, columns=L)
print (final)
One Two Three
0 0 0 0
1 0 0 0
2 0 0 0
因为列未对齐并获得所有NaN
s:
final = pd.DataFrame(a, columns=L)
print (final)
One Two Three
0 NaN NaN NaN
1 NaN NaN NaN
2 NaN NaN NaN
如果所有值均为a DataFrame
,我认为最简单的是仅使用0
的索引:
L = [u'One', u'Two', u'Three']
final = pd.DataFrame(0, columns=L, index=a.index)
print (final)
One Two Three
0 0 0 0
1 0 0 0
2 0 0 0