美文网首页
2018-09-05 关于pandas.read_csv读入tx

2018-09-05 关于pandas.read_csv读入tx

作者: NO_OcaNE | 来源:发表于2018-09-05 22:14 被阅读0次

    修改了一晚IO问题,以添加一个“+”解决

    pandas

    采用read_csv、read_table对txt文档进行读入,读入成DataFrame格式

    1 2 3 4 5 

    6 7 8 9 10 

    11 12 13 14 15 

    文件无columns,无index

    不妨设列名 col = ['a','b','c','d','e']

    问题的关键在于index

    但是当采用read_table读入时(以空格作为分隔符),出现了index指向错误

    test = pd.read_table('test.txt', names = ['a','b','c','d','e'], sep = ' ')

    读入的test为

    即原本的数据第一列被错误的判定为index,而在最后补充了NaN

    出现这个bug的原因是:

    “test.txt”每一行的结尾多了一个空格" ",一个肉眼看不见的空格!

    当read_csv遇到这个空格时,会默认的多读入一个元素NaN

    而通过names将DataFrame设定为5列,read_csv便很智能(zhang)的将第一列作为index,并补入了NaN作为结尾。

    解决方式:


    多写一个加号“+”,注意+前面有一个空格,通过正则的方式,将多个空格的状况过滤,即把最后的空格和换行符合并过滤,同时也防止了数据中间出现两个空格的情况

    sep = ' +'

    当然,使用多个字符作为分隔符,就必须得指定采用python引擎进行解释,因为C引擎只支持单字符

    train = pd.read_table('train.txt',names = col, sep = ' +', engine='python')

    相关文章

      网友评论

          本文标题:2018-09-05 关于pandas.read_csv读入tx

          本文链接:https://www.haomeiwen.com/subject/jjbzwftx.html