python pandas 读excel,用pandas读取excel
如果使用Anaconda集成包,可以直接使用Import pandas as pd,否则可能需要下载:pip install pandas。
读取表格,获取表格行列信息df=PD . read _ excel( test . xlsx )height,width=df.shapeprint (height,width,type (df))。该表如下:
获得以下输出,这是一个4行5列的数据块,采用DataFrame格式:
通过直接打印(df)获得的结果:
将结果与表格进行比较,可以明显看出,表格中的第一行(黄色突出显示)被定义为数据块的列下标,而最后四行(蓝色突出显示)实际上被视为数据;并自动在表的第一列前添加一个行索引{0,1,2,3}。
提取数据,放入数组x=NP。range (0,height)中的I的Zeros ((height,width)):对于range (1,width 1)中的J:#遍历的实际下标x[i][j-1]=df.ix[i,j]print(x.shape)print(x)通过np.zeros()方法定义一个所有初始值为0的2D数组(需要导入numpy库),通过df.ix[i,J]读取数据并复制到2D数组中,其中对于range(0,J
对代码做一些补充说明:从DataFrame结构的数据中取值有三种常用方法:
#第一种方法:ixdf.ix[i,j]#这里的I和j是内置的数字索引,行列从0开始计数。df.ix[row,col]#这里的row和col是表格的行和列索引,是表格中行和列的名称#第二种方法:locdf.loc[row,col]# loc只支持表格。不能使用内置数字索引#第三种方法:ilocdf.iloc[i,j]# iloc只支持内置数字索引,不支持表格行列索引。因为ix方法支持两种索引,所以这里就出现了一个问题:如果表格行列索引也是数字怎么办?。例如,在我上面的例子中,列索引是表的第一行{1,2,3,4},而行索引是在读取时。
实验结束后,这种情况会是优先使用表格行列索引,与上面代码中得到的结果相对应。不过为了在使用时不造成混乱,我个人建议用loc或者iloc代替ix。
自定义表格中的行和列索引。如果表格采用以下形式:
让您要读取的数据帧具有{ 一,二,三和四 }的行索引和{ 一,二,三,四和五 }的列索引。如果直接使用read_excel(filename),虽然默认情况下列索引会是第一行,但默认情况下行索引不会是第一列,而是会自动添加一个{0,1,2,3}作为行索引。因此,为了实现我们的目标,我们需要如下设置读取参数:
Df=pd.read _ excel (filename,index _ col=0) #即第一列指定为行索引print(df)print(第0行第一列的数据为:,df.iloc[0,1])print(第三行第二列的数据为:,df.loc[three]
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。