zoukankan      html  css  js  c++  java
  • pandas中DataFrame对象to_csv()方法中的encoding参数

    当使用pd.read_csv()方法读取csv格式文件的时候,常常会因为csv文件中带有中文字符而产生字符编码错误,造成读取文件错误,在这个时候,我们可以尝试将pd.read_csv()函数的encoding参数设置为"gbk"或者"utf-8"。(这个方法在上一篇博客有介绍)

    据我个人经验总结(如果有错误,还希望大神斧正),在含有中文编码的情况下,to_csv()方法的encoding参数默认为"gbk",而read_csv()方法的encoding参数默认为"utf-8",所以最好的防止由于编码出错导致读取错误的方法就是在to_csv()和read_csv()方法同时显式地设置相同的encoding参数。 

    下面来谈谈出现编码错误的原因。

    原来当我们将pandas的DataFrame对象转化为csv格式文件写入硬盘的时候调用的to_csv()函数可以接受一个encoding参数(这个encoding参数决定了写入csv文件所用的编码方式)。同样的,当我们调用pd.read_csv()函数来讲csv文件读取成DataFrame对象的时候,也要传入一个与之对应的encoding参数,如下代码例子(这里的encoding编码格式设置为"utf-8"):

     1 import pandas as pd
     2 import numpy as np
     3 
     4 head = ["表头1" , "表头2" , "表头3"]
     5 l = [[1 , 2 , 3],[4,5,6] , [8 , 7 , 9]]
     6 df = pd.DataFrame (l , columns = head)
     7 df.to_csv ("testfoo.csv" , encoding = "utf-8") 
     8 
     9 df2 = pd.read_csv ("testfoo.csv" , encoding = "utf-8")
    10 print (df2)

    结果如下:

       Unnamed: 0  表头1  表头2  表头3
    0           0    1    2    3
    1           1    4    5    6
    2           2    8    7    9



    
    
    
    
  • 相关阅读:
    设计模式详解(图码)
    设计模式详解(图)
    Zookeeper学习
    取消单元格的点击事件
    ios 中生成随机数
    IOS 时间和时间戳之间转化
    偏好存空判断
    限制textfield的文字长度
    tabBar的图标不被系统渲染
    (转)IOS http请求的get 和 post的请求的区别
  • 原文地址:https://www.cnblogs.com/maoguy/p/6807941.html
Copyright © 2011-2022 走看看