问题
在用pandas处理数据库的数据时,将处理的结果保存成csv格式,发现有一列的数据自动换行了,而没有待在原本的列里面。
原因分析
之前花了很多时间来查看pandas.to_csv()处理数据的出现问题,后面分析验证不是to_csv()的问题,其实是我的数据本身有问题——数据清洗的时候,没有过滤掉回车符。用Python读取数据库里的5行数据,发行vendor_ids这个字段下面的数据都是带着“\r” 例如:‘vendor_ids’: u’124950\r’
数据库可视化界面展示的数据 红色下划线的部分就是回车符在数据库可视界面里的展示效果
解决方法
使用SQL(ps:我用的是MySQL)里的REPLACE(filedname,args,’’)函数过滤掉。
args:有下面几种情况 CHAR(13):回车符 \r CHAE(10):换行符 \n CHAR(9):水平制表符 \t ’ ’ :空格
‘’ :去除;如果是替换的,可以换成其他的替换对象。
SELECT vendor_name,tpl_name,sender_list,REPLACE(vendor_ids,CHAR(13),’’) AS vendor_id FROM tpl_configs;
效果:可视化界面里已经没有回车符的视图了。