pandas处理csv
import pandas as pd from pandas import Series,DataFrame
打开csv文件
deli = pd.read_csv('../得力.csv')
转换为DataFrame数据类型
df = DataFrame(data=deli)
更改列名
df.rename(columns={"title":"商品名称","price":"价格","prodCode":"型号","brand":"品牌","cskucode":"商品id","detailDesc":"商品简介","First_class":"一级分类","Second_class":"二级分类"},inplace=True) df.drop(["_id"],axis=1,inplace=True) df
根据列名重新排列
df = df.loc[:,["商品名称","价格","型号","品牌","商品id","商品简介","一级分类","二级分类"]]
处理列中字符串
df["商品名称"] = df["商品名称"].str.strip("\n") df
保存DataFrame数据为csv文件
df.to_csv("test得力.csv",encoding="utf_8_sig")
关于utf-8与utf_8_sig的区别:
UTF-8以字节为编码单元,它的字节顺序在所有系统中都是一様的,没有字节序的问题,也因此它实际上并不需要BOM(“ByteOrder Mark”)。但是UTF-8 with BOM即utf-8-sig需要提供BOM。
1)程序输出中出现乱码的原因是因为python2中中文编码的问题,需要注意的是要将处理的中文文件的编码和python源文件的编码保持一致,这样不会出现中文乱码。
2)在程序中能够正常输出中文,但是导出到文件后使用excel打开是出现中文乱码是因为excel能够正确识别用gb2312、gbk、gb18030或utf_8 with BOM 编码的中文,如果是utf_8 no BOM编码的中文文件,excel打开会乱码。
其他:
判断列中是否有空值
df.isnull().any(axis=0)
DataFrame文档链接 http://pandas.pydata.org/pandas-docs/stable/reference/frame.html