我创建了一个充满零的 DataFrame,例如:
0 1 2
0 0 0 0
1 0 0 0
2 0 0 0
...
n 0 0 0
我有一个包含 unicode 列名称的列表,例如:
list = [u'一', u'二', u'三']
零的 DataFrame 称为 a
,我正在创建一个新的完整 DataFrame,其中列表作为列标题:
final = pd.DataFrame(a, columns=[list])
但是,生成的 DataFrame 的列名称不再是 unicode(即它们不显示 u'' 标记)。
我想知道为什么会发生这种情况。谢谢!
最佳答案
unicode丢失是没有原因的,可以通过以下方式查看:
print df.columns.tolist()
请勿使用 list
、type
、id
... 等保留字作为变量,因为会屏蔽内置函数。还需要添加values
将值转换为 numpy 数组:
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
:
final = pd.DataFrame(a, columns=L)
print (final)
One Two Three
0 NaN NaN NaN
1 NaN NaN NaN
2 NaN NaN NaN
我认为最简单的是如果所有值都是0
,则仅使用DataFrame
的索引:
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
关于python - 将列名称应用于 pandas DataFrame,名称不再是 unicode,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44276152/