pandas操作Excel学习笔记_loc和iloc_7000

pandas操作Excel学习笔记__7000

1.安装环境:pandas需要处理Excel的模块xlrd,所以需要提前安装xlrd。不过在安装pandas时候pycharm帮助一起附带了numpy和xlrd好几个包。安装命令:pip install xlrd 、 pip install pandas、pip install numpy

2.操作Excel

预备数据:

代码证券简称分配年度是否分配送股*转增股*送转总数*派现/元*预案公布日股权登记日除权除息日事件进程公告日期
625 长安汽车 2020-12-31 分配 -- 4 4 3.06 2021-4-20 -- -- 预案 2021-4-20
200625 长 安 B 2020-12-31 分配 -- 4 4 3.06 2021-4-20 -- -- 预案 2021-4-20
600276 恒瑞医药 2020-12-31 分配 2 -- 2 2 2021-4-20 -- -- 预案 2021-4-20
600475 华光环能 2020-12-31 分配 3 -- 3 3.5 2021-4-20 -- -- 预案 2021-4-20
600740 山西焦化 2020-12-31 分配 -- 3 3 2 2021-4-20 -- -- 预案 2021-4-20
2111 威海广泰 2020-12-31 分配 -- 4 4 4 2021-4-20 -- -- 预案 2021-4-20
300729 乐歌股份 2020-12-31 分配 -- 3 3 1.8 2021-4-20 -- -- 预案 2021-4-20
300543 朗科智能 2020-12-31 分配 -- 3 3 2.5 2021-4-20 -- -- 预案 2021-4-20
603638 艾迪精密 2020-12-31 分配 -- 4 4 1.8 2021-4-20 -- -- 预案 2021-4-20
300598 诚迈科技 2020-12-31 分配 -- 5 5 0.65 2021-4-20 -- -- 预案 2021-4-20
603096 新 经 典 2020-12-31 分配 -- 2 2 7.5 2021-4-20 -- -- 预案 2021-4-20
603879 永悦科技 2020-12-31 分配 -- 3 3 0.079 2021-4-20 -- -- 预案 2021-4-20
2884 凌霄泵业 2020-12-31 分配 -- 4 4 13 2021-4-20 -- -- 预案 2021-4-20
603233 大 参 林 2020-12-31 分配 -- 2 2 8 2021-4-20 -- -- 预案 2021-4-20
603683 晶华新材 2020-12-31 分配 -- 4 4 0.5 2021-4-20 -- -- 预案 2021-4-20
300709 精研科技 2020-12-31 分配 -- 2 2 2 2021-4-20 -- -- 预案 2021-4-20
300702 天宇股份 2020-12-31 分配 -- 8 8 5 2021-4-20 -- -- 预案 2021-4-20
605158 华达新材 2020-12-31 分配 -- 3 3 2.5 2021-4-20 -- -- 预案 2021-4-20
300829 金丹科技 2020-12-31 分配 -- 6 6 2 2021-4-20 -- -- 预案 2021-4-20
603666 亿 嘉 和 2020-12-31 分配 -- 4 4 3.7 2021-4-20 -- -- 预案 2021-4-20
603353 和顺石油 2020-12-31 分配 -- 3 3 5 2021-4-20 -- -- 预案 2021-4-20
2992 宝明科技 2020-12-31 分配 -- 3 3 3.7 2021-4-20 -- -- 预案 2021-4-20
603583 捷昌驱动 2020-12-31 分配 -- 4 4 4 2021-4-20 -- -- 预案 2021-4-20
603236 移远通信 2020-12-31 分配 -- 3 3 5.1 2021-4-20 -- -- 预案 2021-4-20
603610 麒盛科技 2020-12-31 分配 -- 3.5 3.5 5 2021-4-20 -- -- 预案 2021-4-20
300841 康华生物 2020-12-31 分配 -- 5 5 15 2021-4-20 -- -- 预案 2021-4-20
300947 德必集团 2020-12-31 分配 -- 5 5 10 2021-4-20 -- -- 预案 2021-4-20
300638 广 和 通 2020-12-31 分配 -- 7 7 3 2021-4-17 -- -- 预案 2021-4-17
603986 兆易创新 2020-12-31 分配 -- 4 4 5.6 2021-4-17 -- -- 预案 2021-4-17
300806 斯 迪 克 2020-12-31 分配 -- 6 6 2 2021-4-17 -- -- 预案 2021-4-17
2800 天顺股份 2020-12-31 分配 -- 4 4 0.79 2021-4-17 -- -- 预案 2021-4-17
600277 亿利洁能 2020-12-31 分配 -- 3 3 0.57 2021-4-17 -- -- 预案 2021-4-17
600120 浙江东方 2020-12-31 分配 -- 3 3 0.4 2021-4-17 -- -- 预案 2021-4-17
603359 东珠生态 2020-12-31 分配 -- 4 4 2 2021-4-16 -- -- 预案 2021-4-16
603027 千禾味业 2020-12-31 分配 -- 2 2 0.93 2021-4-16 -- -- 预案 2021-4-16
300595 欧普康视 2020-12-31 分配 3.5 0.5 4 2.05 2021-4-16 -- -- 预案 2021-4-16
2890 弘宇股份 2020-12-31 分配 -- 4 4 1.4 2021-4-16 -- -- 预案 2021-4-16
603076 乐惠国际 2020-12-31 分配 -- 4 4 1.5 2021-4-16 -- -- 预案 2021-4-16
605108 同 庆 楼 2020-12-31 分配 -- 3 3 1 2021-4-16 -- -- 预案 2021-4-16
300916 朗特智能 2020-12-31 分配 1 4 5 3 2021-4-16 -- -- 预案 2021-4-16
603927 中 科 软 2020-12-31 分配 -- 4 4 5.5 2021-4-16 -- -- 预案 2021-4-16
605377 华旺科技 2020-12-31 分配 -- 4 4 6 2021-4-16 -- -- 预案 2021-4-16
300893 松原股份 2020-12-31 分配 -- 5 5 5 2021-4-16 -- -- 预案 2021-4-16
603466 风 语 筑 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的使用相似但有细微区别。需要单独记住,避免混淆!

  1. loc使用范围比iloc更广更实用,loc可以使用切片、名称(index,columns)、也可以切片和名称混合使用;但是loc不能使用不存在的索引来充当切片取值,像-1

  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,'用户编号']
posted @ 2021-04-20 13:57  zechariah1  阅读(1474)  评论(0编辑  收藏  举报