写入或记录熊猫数据框的打印输出

克里斯

我有一个数据框,希望在Python 2.7中将几行写入文件和记录器中。print(dataframe.iloc[0:4])输出列标题和数据帧中前4行的漂亮网格。但是logging.info(dataframe.iloc[0:4])抛出:

UnicodeDecodeError:'ascii'编解码器无法解码位置87的字节0xc2:序数不在范围内(128)

这是控制台的输出,可以直接通过控制台或通过print()(注意²)工作:

In[89]: d.iloc[0:4]    OR   print(d.iloc[0:4])
Out[89]: 
   ISO  ID_0     NAME_0  ID_1                           NAME_1    ID_2    NAME_2  Area(km.²)  Pop2001_Cen  Pop2010_Cen  HHold2010  Hhold_Size
0  ARG    12  Argentina     2  Ciudad Autónoma de Buenos Aires     NaN       NaN       203.0    2776138.0      2890151  1150134.0    2.512882
1  ARG    12  Argentina     2  Ciudad Autónoma de Buenos Aires  2001.0  Comuna 1         NaN     171975.0       205886    84468.0    2.437444
2  ARG    12  Argentina     2  Ciudad Autónoma de Buenos Aires  2002.0  Comuna 2         NaN     165494.0       157932    73156.0    2.158839
3  ARG    12  Argentina     2  Ciudad Autónoma de Buenos Aires  2003.0  Comuna 3         NaN     184015.0       187537    80489.0    2.329971

一样file.write(dataframe.iloc[0:4])等,作为列标题中的一个包括非ASCII字符。我已经试过各种变化decode()encode()等等,但是不能避免这个错误。

print(d.iloc[0:4])工作,所以另一种方法是使用,print(d.iloc[0:4], file=f)但即使from __future__ import print_function出现上述ascii编码错误。

复制此问题的其他方法是logging.info('Area(km.²)')'Area(km.²)'.decode()

如何渲染此数据框?

[编辑:]

我还想从根本上理解我如何处理Python 2.7中的字符串编码/解码-我花了很多时间来解决这个问题,因为这不是我唯一遇到此UnicodeDecodeError错误的时候,我不知道它什么时候会发生,我仍然只是在控制台上进行修复以查看问题所在,而对发生的事情没有任何根本的了解。

法比奥·拉曼纳(Fabio Lamanna)

IIUC,您可以尝试通过以下方式encoding='utf-8'写出数据帧的前n行:

df.head(n).to_csv('yourfileout.csv', encoding='utf-8')

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章