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

猜你喜欢

转载自www.cnblogs.com/JinMuBaoBao/p/10885533.html