尽管用了一段时间Pandas,今天在使用fasttext时,需要把Excel数据加上标签并放入txt文件出现了一些问题,所以总结一下。
先对函数read_excel()的参数做简单总结:
- header : 设置读取的excel第一行是否作为列名称
- index_col :设置读取的excel第一列是否作为行名称
- sheet_name : 读取的excel指定的sheet页
其返回类型是一个DataFrame
DataFrame 类型类似于数据库表结构的数据结构,其含有行索引和列索引,可以将DataFrame 想成是由相同索引的Series组成的Dict类型。在其底层是通过二维以及一维的数据块实现。
获取数据:
- 数据进行获取可以用
df.values
df.head(n)
前者表示的是返回所有数据,后者表示返回索引n以前的所有数据
- 对目标数据进行获取
data = df.ix[0].values
data = df.ix[[1,2]]
data = df.ix[1,2]
对目标数据获取时都是用的ix来完成定位
对于第一个表示返回第一行所有的信息,第二个表示返回1,2行所有信息,第三个表示返回第一行第二列的所有信息。
我们特别注意其返回的类型,第一返回的是numpy.ndarray,第二个都返回的是Series类型,而第三个返回的是字符串类型。
由此我们可以见,如果使用Values那么返回的是Np的数组类型,而后者返回的Series类型
两者在编码上有所区别,我们输出时会发现,转换为np数组类型后的信息变为了unicode编码,而后者还是utf-8
说到编码不得不说操作文件时,如果乱码,要使用io.open的方法并在参数选择utf-8编码。write方法写入时应用ab,wb等。a,w仅支持字符写入。
信息获取
主要是获取行列信息
df.index.values
df.columns.values
前者返回所有行,后者返回所有列
转换为List
df.tolist()
该方法也存在转码问题,常常会乱码