pandans依赖处理Excel的xlrd模块,所以需要提前安装, 安装命令: pip install xlrd;
提前准备一个Excel文件,存在两个表单;
读取Excel的方式:
1:默认读取第一个表单
import pandas as pa
df = pa.read_excel("./1.xlsx", encoding="UTF-8", header=None, sep=" ", error_bad_lines=False) # 默认读取这个Excel的第一个表单
data=df.head() #默认读取前5行的数据
print("获取到所有的值: {0}".format(data))#格式化输出
得到的是个二维矩阵:
2:通过指定表单名的方式获取
import pandas as pa
df = pa.read_excel("./1.xlsx", sheet_name="student")
data = df.head() # 默认为前5行
print(data)
得到的也是一个二维矩阵:
3:通过表单索引来指定要访问的表单
import pandas as pa
# df = pa.read_excel("./1.xlsx", sheet_name=["python", "student"]) # 通过指定多个表名
# df = pa.read_excel("./1.xlsx", sheet_name=["python", 1]) # 表名+索引
df = pa.read_excel("./1.xlsx", sheet_name=[0, 1]) # 全部索引
data = df.values() # 获取所有值,不需要像head()一样,指定行数
print(data)
pandas处理Excel数据为字典
# 处理Excel为字典
df = pa.read_excel("./1.xlsx") # 默认读取第一个表单
test_data = []
for i in df.index.values: # 获取行号的索引,并对其进行遍历、
# 根据i来获取每一行指定的数据利用to_dict转成字典
row_data = df.ix[i, [0, 1, 2, 3]].to_dict()
test_data.append(row_data)
print("最终获得数据: {}".format(test_data))
pandans操作Excel的行列
# 1:指定读取行
df = pa.read_excel("./1.xlsx") # 默认读取第一个表单
data = df.ix[0].values # 读取第一行,不会包括表头
print(data)
# 2:指定读取多行
df = pa.read_excel("./1.xlsx") # 默认读取第一个表单
data = df.ix[[1, 2]].values # 读取多行,行数写在一个列表中
print(data)
# 3:指定读取行列
df = pa.read_excel("./1.xlsx") # 默认读取第一个表单
data = df.ix[0, 2] # 读取第一行,第三列数据
print(data)
# 4:指定读取多行多列
df = pa.read_excel("./1.xlsx") # 默认读取第一个表单
data = df.ix[[0, 1], [1, 2]].values # 列表嵌套列表
print(data)
# 5:获取所有行的指定列/指定列的所有行
df = pa.read_excel("./1.xlsx") # 默认读取第一个表单
# data=df.ix[:, [1, 2]].values # 列表嵌套列表, ":" :代表所有行
data=df.ix[[1, 2], :].values
print(data)
# 6:获取行号和列号并打印输出
df = pa.read_excel("./1.xlsx") # 默认读取第一个表单
print("输出所有的行号及列号:", (df.index.values, df.columns.values))
# 7:获取指定行数的值/获取指定列的值
df = pa.read_excel("./1.xlsx") # 默认读取第一个表单
print(df.sample(3).values) #这个方法类似于head()方法以及df.values方法
print(df["内容"].values) # 只能写行的标题,不用使用索引