pandas操作Excel学习笔记_loc和iloc_7000
1.安装环境:pandas需要处理Excel的模块xlrd,所以需要提前安装xlrd。不过在安装pandas时候pycharm帮助一起附带了numpy和xlrd好几个包。安装命令:pip install xlrd 、 pip install pandas、pip install numpy
2.操作Excel
预备数据:
2020-12-31 | 分配 | -- | 4 | 4 | 3.06 | 2021-4-20 | -- | -- | 预案 | 2021-4-20 | ||
2020-12-31 | 分配 | -- | 4 | 4 | 3.06 | 2021-4-20 | -- | -- | 预案 | 2021-4-20 | ||
2020-12-31 | 分配 | 2 | -- | 2 | 2 | 2021-4-20 | -- | -- | 预案 | 2021-4-20 | ||
2020-12-31 | 分配 | 3 | -- | 3 | 3.5 | 2021-4-20 | -- | -- | 预案 | 2021-4-20 | ||
2020-12-31 | 分配 | -- | 3 | 3 | 2 | 2021-4-20 | -- | -- | 预案 | 2021-4-20 | ||
2020-12-31 | 分配 | -- | 4 | 4 | 4 | 2021-4-20 | -- | -- | 预案 | 2021-4-20 | ||
2020-12-31 | 分配 | -- | 3 | 3 | 1.8 | 2021-4-20 | -- | -- | 预案 | 2021-4-20 | ||
2020-12-31 | 分配 | -- | 3 | 3 | 2.5 | 2021-4-20 | -- | -- | 预案 | 2021-4-20 | ||
2020-12-31 | 分配 | -- | 4 | 4 | 1.8 | 2021-4-20 | -- | -- | 预案 | 2021-4-20 | ||
2020-12-31 | 分配 | -- | 5 | 5 | 0.65 | 2021-4-20 | -- | -- | 预案 | 2021-4-20 | ||
2020-12-31 | 分配 | -- | 2 | 2 | 7.5 | 2021-4-20 | -- | -- | 预案 | 2021-4-20 | ||
2020-12-31 | 分配 | -- | 3 | 3 | 0.079 | 2021-4-20 | -- | -- | 预案 | 2021-4-20 | ||
2020-12-31 | 分配 | -- | 4 | 4 | 13 | 2021-4-20 | -- | -- | 预案 | 2021-4-20 | ||
2020-12-31 | 分配 | -- | 2 | 2 | 8 | 2021-4-20 | -- | -- | 预案 | 2021-4-20 | ||
2020-12-31 | 分配 | -- | 4 | 4 | 0.5 | 2021-4-20 | -- | -- | 预案 | 2021-4-20 | ||
2020-12-31 | 分配 | -- | 2 | 2 | 2 | 2021-4-20 | -- | -- | 预案 | 2021-4-20 | ||
2020-12-31 | 分配 | -- | 8 | 8 | 5 | 2021-4-20 | -- | -- | 预案 | 2021-4-20 | ||
2020-12-31 | 分配 | -- | 3 | 3 | 2.5 | 2021-4-20 | -- | -- | 预案 | 2021-4-20 | ||
2020-12-31 | 分配 | -- | 6 | 6 | 2 | 2021-4-20 | -- | -- | 预案 | 2021-4-20 | ||
2020-12-31 | 分配 | -- | 4 | 4 | 3.7 | 2021-4-20 | -- | -- | 预案 | 2021-4-20 | ||
2020-12-31 | 分配 | -- | 3 | 3 | 5 | 2021-4-20 | -- | -- | 预案 | 2021-4-20 | ||
2020-12-31 | 分配 | -- | 3 | 3 | 3.7 | 2021-4-20 | -- | -- | 预案 | 2021-4-20 | ||
2020-12-31 | 分配 | -- | 4 | 4 | 4 | 2021-4-20 | -- | -- | 预案 | 2021-4-20 | ||
2020-12-31 | 分配 | -- | 3 | 3 | 5.1 | 2021-4-20 | -- | -- | 预案 | 2021-4-20 | ||
2020-12-31 | 分配 | -- | 3.5 | 3.5 | 5 | 2021-4-20 | -- | -- | 预案 | 2021-4-20 | ||
2020-12-31 | 分配 | -- | 5 | 5 | 15 | 2021-4-20 | -- | -- | 预案 | 2021-4-20 | ||
2020-12-31 | 分配 | -- | 5 | 5 | 10 | 2021-4-20 | -- | -- | 预案 | 2021-4-20 | ||
2020-12-31 | 分配 | -- | 7 | 7 | 3 | 2021-4-17 | -- | -- | 预案 | 2021-4-17 | ||
2020-12-31 | 分配 | -- | 4 | 4 | 5.6 | 2021-4-17 | -- | -- | 预案 | 2021-4-17 | ||
2020-12-31 | 分配 | -- | 6 | 6 | 2 | 2021-4-17 | -- | -- | 预案 | 2021-4-17 | ||
2020-12-31 | 分配 | -- | 4 | 4 | 0.79 | 2021-4-17 | -- | -- | 预案 | 2021-4-17 | ||
2020-12-31 | 分配 | -- | 3 | 3 | 0.57 | 2021-4-17 | -- | -- | 预案 | 2021-4-17 | ||
2020-12-31 | 分配 | -- | 3 | 3 | 0.4 | 2021-4-17 | -- | -- | 预案 | 2021-4-17 | ||
2020-12-31 | 分配 | -- | 4 | 4 | 2 | 2021-4-16 | -- | -- | 预案 | 2021-4-16 | ||
2020-12-31 | 分配 | -- | 2 | 2 | 0.93 | 2021-4-16 | -- | -- | 预案 | 2021-4-16 | ||
2020-12-31 | 分配 | 3.5 | 0.5 | 4 | 2.05 | 2021-4-16 | -- | -- | 预案 | 2021-4-16 | ||
2020-12-31 | 分配 | -- | 4 | 4 | 1.4 | 2021-4-16 | -- | -- | 预案 | 2021-4-16 | ||
2020-12-31 | 分配 | -- | 4 | 4 | 1.5 | 2021-4-16 | -- | -- | 预案 | 2021-4-16 | ||
2020-12-31 | 分配 | -- | 3 | 3 | 1 | 2021-4-16 | -- | -- | 预案 | 2021-4-16 | ||
2020-12-31 | 分配 | 1 | 4 | 5 | 3 | 2021-4-16 | -- | -- | 预案 | 2021-4-16 | ||
2020-12-31 | 分配 | -- | 4 | 4 | 5.5 | 2021-4-16 | -- | -- | 预案 | 2021-4-16 | ||
2020-12-31 | 分配 | -- | 4 | 4 | 6 | 2021-4-16 | -- | -- | 预案 | 2021-4-16 | ||
2020-12-31 | 分配 | -- | 5 | 5 | 5 | 2021-4-16 | -- | -- | 预案 | 2021-4-16 | ||
2020-12-31 | 分配 | -- | 4.5 | 4.5 | 5 | 2021-4-16 | -- | -- | 预案 | 2021-4-16 |
import pandas as pd
# 1.读取Excel文件的几种方式:
# df = pd.read_excel('001.xlsx') # 相对路径读取Excel的第一个表单(无参数即默认为第一个sheet1表单)
# df = pd.read_excel('001.xlsx',sheet_name=0) # 读取Excel的第一个表单(无参数即默认为第一个sheet1表单)[参数为shaeet_name=索引号]
df = pd.read_excel('001.xlsx', sheet_name='Sheet2') # 读取Excel的指定表单名[参数为shaeet_name="表单名字"]
# print(df)
# 2.读取数据的几种方式:
# data = df.head() # 默认读取前五行数据,显示为 行格式
# print(data)
# print("获取到所有的值:\n{0}".format(data)) # 格式化输出
# dataall = df.values # 默认读所有数据,显示为列表
# print(dataall)
# print("获取到所有的值:\n{0}".format(dataall)) # 格式化输出
# print(type(dataall)) # 数据类型<class 'numpy.ndarray'>
# print(dataall.ndim) # 数据维度
# 3.读取数据行列的几种方式:
# data = df.iloc[0].values # 0表示第一行 这里读取数据并不包含表头,要注意哦!
# data = df.iloc[1:3].values # 读取指定的区间的多行,类似切片操作,要注意哦!
# data = df.iloc[2,3] # 读取指定的行列(第一行,第三列),类似切片操作,要注意不要加.values可以直接获取值!
# data = df.iloc[-3] # 读取指定的行(第三行),类似切片操作,要注意不要加.values可以直接获取值!
# data = df.iloc[1:3] # 读取指定的行区间(第一行至第三行左闭右开取两行数据),类似切片操作,要注意不要加.values可以直接获取值!
# data = df.iloc[[2,3],[1,2,3,4]].values # 读取指定的行和列区间(第二行和第三行,第一列第二列第三列第四列),类似切片操作这里要加.values获取值!
# data = df.iloc[[2,3],[1]].values # 读取指定的行和列区间(第二行和第三行,第一列第二列第三列第四列),类似切片操作这里要加.values获取值!
# data = df.iloc[:,[0,1,2]].values # 读取指定所有行的指定列区间(第一列第二列第三列),类似切片操作取列数据!
# data = df.iloc[1:3,1:5].values # 读取指定所有行的指定列区间切片操作取列数据!
# print("读取指定行的数据:\n{0}".format(data)) # 格式化输出
# print("输出行号列表",df.index.values) # 获取行号列表
# print("输出列标题",df.columns.values) # 获取列名列表
# **************-----
# data = df.iloc[-1] # 可以使用
data = df.loc[-1] # 不可以使用
# *** loc还可以和列名混合使用! **************
# data = df.loc[2].values
# data = df.loc[1:3].values
# data = df.loc[-2:3,'代码']
# loc可以按条件取数,类似sql语句
# data = df.loc[df['证券简称'].str.len()>4,['代码','证券简称']]
print(data)
-
loc使用范围比iloc更广更实用,loc可以使用切片、名称(index,columns)、也可以切片和名称混合使用;但是loc不能使用不存在的索引来充当切片取值,像-1
-
iloc只能用整数来取数;iloc: i可以看着int,因此iloc就是用数字(int)来取数据的.
推荐使用loc:参考http://www.manongjc.com/detail/15-neimydkqceiwyzo.html
iloc使用情况: 使用整数通过切片等方式取数 比如:
loc的使用范围要远高于iloc, loc也能够做到iloc的切片取数, 除了df.loc[-1]特殊不能使用 loc使用情况:(比较iloc多列名和条件查找) 1.使用切片、索引、列名称查找 2.按条件(bool)查找
比如:
# 切片操作
result= data.loc[1:4,]
result= data.loc[[0,1,2,3],:]
# 切片和名称混合
result= data.loc[1:4,'用户编号']