python - 将列名称应用于 pandas DataFrame,名称不再是 unicode

标签 python python-2.7 pandas unicode

我创建了一个充满零的 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()

请勿使用 listtypeid... 等保留字作为变量,因为会屏蔽内置函数。还需要添加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/

相关文章:

python - 数据库同步期间序列化数据的优点

python - 是否可以使用 MPI 将数据从 Fortran 程序发送到 Python?

python-2.7 - 使用OpenCV Python进行多图像比较

python - 在忽略 NaN 的同时连接 pandas DataFrame 中的列值

python - 使用 Python 绘制数据图形时出现问题

python - Nan 值的 bool 索引

python - 在线程中打印不适用于python 3

python - 使用参数调用和执行并在 Python 脚本中更有效地获取其 STDOUT

Python 2 子进程(dmidecode)到一个变量?

python - 在 Flask 中通过 SQL 数据库格式化表