人生苦短,我用Python上一篇传送门:小白学Python数据分析(一):数据分析基础小白学Python数据分析(二):Pandas(一)概述小白学Python数据分析(三):Pandas(二)数据结构系列小白学Python数据分析(四):Pandas(三)数据结构DataFrame小白学Python数据分析(五):Pandas(4))基本操作(1)查看数据小白学Python数据分析(6):Pandas(5)基本操作(2)数据选择小白学Python数据分析(7):Pandas(6)数据导入小白学Python数据分析(8)):Pandas(7)数据预处理简介在上一篇文章中,我们介绍了数据预处理中数据问题的几种情况和一般解决方法。很多时候,我们在获取数据的时候,首先需要确定获取到的数据是正确的类型。如果数据类型不正确,我们通常通过数据类型转换来转换数据类型。大家应该都知道,Excel中的数据类型有很多,都是常用的。有文本、数字、货币、时间、日期等。在Pandas中,数据类型比较少,常用的有int64、float64、object、datetime64等。还是用前面的例子,我们先看一下当前数据表中的数据类型。这里使用的dtypes如下:importpandasaspd#relativepathdf=pd.read_excel("result_data.xlsx")print(df)#Outputplantformread_numfans_numrank_numlike_numcreate_date0cnblog215.00118.002019-11-2323:00:101cnblog215.00118.002019-11-2323:00:102juejinNaN121-2093:00:033csdn1652.0690.0242019-11-2323:00:024cnblog61902030-11-2223:00:15...................404juejin212.00-1.022020-02-2023:00:02405csdn1602.010.012020-02-2023:00:01406cnblog19.0041.002020-02-2123:00:05407觉进125.01-4.002020-02-2123:00:02408csdn1475.080.032020-02-2123:00:02print(df.dtypes)#输出结果plantformobjectread_numfloat64fans_numint64rank_numfloat64like_numint64create_datedatetime64[ns]dtype:object当然如果我们想单独知道某列的数据类型,我们也可以这样使用:importpandasaspd#relativepathdf=pd.read_excel("result_data.xlsx")print(df['read_num'].dtypes)#outputresultfloat64当我们需要转换数据类型时,我们可以使用astype()这个方法,使用的时候在astype()后面的括号里写上需要转换的目标类型:importpandasaspd#relativepathdf=pd.read_excel("result_data.xlsx")print(df['fans_num'].astype('float64'))#Outputresult00.010.020.0369.043.0...4040.04051.04060.04071.04088.0Name:fans_num,Length:409,dtype:float64添加索引有时,数据我们得到的表是没有Indexed的,如果没有索引,Pandas会默认添加一个从0开始的自然数作为行索引,列索引取默认第一行。比如我们创建了一个没有表头的Excel,如下:没有表头的数据好像很难看懂,我们导入Pandas看看效果:importpandasaspddf1=pd.read_excel("demo.xlsx")print(df1)#输出结果A11001小红10000A21002小王20001A31003小明30002A41004小猪40003A51005小黑5000这时候我们要给这个数据表添加列索引,这里可以使用列,如下:importpandasaspddf1=pd.read_excel("demo.xlsx")df1.columns=['编号','序列号','姓名','消费金额']print(df1)#输出结果编号序列号名称消费Amount0A21002小王20001A31003小明30002A41004小猪40003A51005小黑5000现在我们有了列索引,但是如果此时我不想使用自动生成的自然数作为行索引,我想用数据表序号代替,怎么办?这里需要用到的是set_index()方法,只需在括号中指定要使用的列名即可:importpandasaspddf1=pd.read_excel("demo.xlsx")print(df1.set_index('Number'))#输出结果序号名称消费金额编号A21002小王2000A31003小明3000A41004小猪4000A51005小黑5000本文内容到此结束,今天的内容有点短,溜了~~示例代码老规矩,所有示例代码都会上传到代码管理仓库Github和Gitee,方便查阅。示例代码-Github示例代码-Gitee如果我的文章对你有帮助,请扫码关注作者的公众号:获取最新干货推送:)
