最近在参加Kaggle上的一个比赛,发现比赛用的数据地址以及标签都放在了CSV文件里面,然后就需要使用Pandas这个工具包,进行数据分析以及操作,以下就总结下里面常用到的一些基本函数使用方法。Pandas工具包最主要的作用就是数据分析,可以处理csv,excle,txt,等各种常见的数据类型。下面就以处理csv文件为例。
一、读取数据
这里随机创建了一个csv文件,表格内容如下所示,文件名为 exercise.CSV。一般就是使用read_csv()函数来读取CSV文件的内容,该函数使用灵活多变,有很多可选参数,什么都不加的情况,就是以第一行作为列索引,然后在最左列自动添加0,1,2,3.....作为行索引,此时NO.1,NO.2....也是作为值读入了。添加常用参数index_col之后,可以指定某一列作为行索引,这是再打印其值,发现NO.1,NO.2...就没有读入进来,只是充当了行索引。这只是其中的一个参数,还有header参数可以指定某一行作为列索引,默认情况都是以第一行,有的时候,要是没有表头,也可以使用header=None,这样就可以把一行也作为数据读入了。还有的情况是需要跳过一些行再进行读入,可以使用参数skiprows来进行设置。总之还有很多参数,有需要的可以去了解下官方文档。
import pandas as pd
import pandas as pd
exercise_pd=pd.read_csv("exercise.CSV")
print(exercise_pd)
print(exercise_pd.values)
<<
StudentID Col1 Col2 Col3
0 NO.1 89 90 76
1 NO.2 53 98 79
2 NO.3 43 36 56
3 NO.4 49 88 66
[['NO.1' 89 90 76]
['NO.2' 53 98 79]
['NO.3' 43 36 56]
['NO.4' 49 88 66]]
#********************************************************************************
exercise_pd_2=pd.read_csv("exercise.CSV",index_col='StudentID')
print(exercise_pd_2)
print(exercise_pd_2.values)
<<
Col1 Col2 Col3
StudentID
NO.1 89 90 76
NO.2 53 98 79
NO.3 43 36 56
NO.4 49 88 66
[[89 90 76]
[53 98 79]
[43 36 56]
[49 88 66]]
二、loc和iloc的区别
这两个函数都是用来删选指定区域的数据,主要的区别有两点
2.1 .loc()是通过标签来读取数据
.iloc()则是以左上角的数据值作为原点(0, 0),然后通过坐标来读取数据,需要注意,这里的原点就是数字89所在的位置,因为读取数据的时候,表头和最左侧的StudentID都没有作为数据读入,但是我们Prtint的时候,为了方便查看结果,表头和最左侧的还是会显示出来的。
2.2 还有一个区别就是数据区间问题, .loc()数据读的都是闭区间,NO.1, NO.2, NO.3都读入
.iloc()则是左闭右开区间,只读入0,1,2
import pandas as pd
exercise_pd_2=pd.read_csv("exercise.CSV",index_col='StudentID')
a=exercise_pd_2.loc['NO.1':'NO.3','Col1':'Col3']
print(a)
<<
Col1 Col2 Col3
StudentID
NO.1 89 90 76
NO.2 53 98 79
NO.3 43 36 56
#**********************************************************************
b=exercise_pd_2.iloc[0:3,0:3]
print(b)
<<
Col1 Col2 Col3
StudentID
NO.1 89 90 76
NO.2 53 98 79
NO.3 43 36 56