Python Pandas库学习笔记(一)

笔记重点

  • pd.read_excel()的使用
  • 查看导入数据的属性:维度、列名、数据格式、唯一值、所有值、前/后x行等
  • 数据清理代码:填充格式、数据类型更改、大小写转换、更改列名、数据替换等
  • loc和iloc的使用

1. 文件路径的2种引用方法

path = 'C:/Users/111/Desktop/分析报告/sales.xlsx'
# 将文件路径的"\"改成"/"

或者

path = r'C:\Users\111\Desktop\分析报告\sales.xlsx'
# 在文件路径前面加上"r",可以对后面路径中的"\"进行转义

2. 读取excel中指定位置的sheet

df = pd.read_excel(path,sheet_name=1)
  • 如果省略sheet_name参数,则默认读取第一个sheet,也就是sheet_name=0;
  • 也可以直接使用sheet表名来引用,如,第2个sheet名字为"order",则sheet_name=1等同于sheet_name=“order”

更多pd.read_excel( )里的参数细节参见 pd.read_excel( )

以下是参考https://www.cnblogs.com/wobujiaonaoxin/articles/11386046.html 的步骤尝试的pandas一些函数的用法记录

一、导入数据的属性查看函数

① df.shape维度查看

在这里插入图片描述
表示该数据为16598行*12列

② df.info()数据表基本信息查看:行/列数、列名、空值、数据格式,占用内存

Python Pandas库学习笔记(一)_第1张图片

③ df.dtypes 数据格式查看

感觉不如使用上面的df.info()
Python Pandas库学习笔记(一)_第2张图片

④ df[ ].unique() 查看某一列的唯一值

Python Pandas库学习笔记(一)_第3张图片

⑤ df.values 查看数据表的所有值

Python Pandas库学习笔记(一)_第4张图片

⑥ df.columns查看列名称

在这里插入图片描述

⑦ df.head()查看前x行数据

Python Pandas库学习笔记(一)_第5张图片

⑧ df.tail()查看最后x行数据

Python Pandas库学习笔记(一)_第6张图片

二、数据清理函数

① df.fillna()填充空值数据

好像看不到效果?
Python Pandas库学习笔记(一)_第7张图片

② 进阶填充空值

使用Year这列的均值对Year列的空值进行填充,还是看不到效果,怎么判断填充成功?
Python Pandas库学习笔记(一)_第8张图片

③ 大小写转换 df[“列名”].str.lower()

Python Pandas库学习笔记(一)_第9张图片

④ 更改数据格式 df[“列名”].astype(“数据格式”)

Python Pandas库学习笔记(一)_第10张图片

⑤ 更改列名 df.rename(columns={“原名称”:“新名称”})

Python Pandas库学习笔记(一)_第11张图片

⑥ 删除重复值

没有理解,是只删除该列对应的重复值,还是删除整行?表格数据不太好尝试,等后续再试试
Python Pandas库学习笔记(一)_第12张图片

⑦ 数据替换df[“列名”].replace(“原值”,“新值”)

Python Pandas库学习笔记(一)_第13张图片

loc 和 iloc的使用

① loc

  • df.loc[3],提取第4行的数据
    Python Pandas库学习笔记(一)_第14张图片
  • df.loc[0:5:2],提取前5行,以2行为步长,也就是0,2,4行
    Python Pandas库学习笔记(一)_第15张图片
  • df.loc[0:5,1:3],报错,只能提取行,不能提取列
    在这里插入图片描述

② iloc

  • df.iloc[3],输出第4行数据

Python Pandas库学习笔记(一)_第16张图片

  • df.iloc[0:5:2],提取前5行,以2行为步长。结果同df.loc[0:5:2]

Python Pandas库学习笔记(一)_第17张图片

  • df.iloc[0:5:2,1:3],提取前5行,以2行为步长切片,并提取第1:3列数据

Python Pandas库学习笔记(一)_第18张图片

③ 按位置单独检索某几行数据

  • df.loc[0,3,5,7] 或者 df.iloc[0,3,5,7],提取第0,3,5,7行数据,都报错
    在这里插入图片描述
    在这里插入图片描述
  • df.iloc[[0,3,5,7],[1,2,3]],提取第0,3,5,7行,第1,2,3列数据,成功
    Python Pandas库学习笔记(一)_第19张图片
  • df.loc[[0,3,5,7],[1,2,3]]报错,但是使用df.loc[[0,3,5,7],[“Platform”,“Year”]]是可以查询的,但是将loc改为iloc,也就是df.iloc[[0,3,5,7],[“Platform”,“Year”]]后就会报错
    ,有意思,搜了一下loc和iloc的区别,将总结写在最后面去

Python Pandas库学习笔记(一)_第20张图片

④ 提取符合包含某些条件的数据

  • df.loc[df[‘Platform’].isin([‘Will’,‘GB’])],判断Platform里面是否包含“Will”和“GB”,并提取出来
    是否可以嵌套函数,查询包含这些条件的前X项数据?或者继续嵌套,按照某一列排序后提取前X项?
    Python Pandas库学习笔记(一)_第21张图片
  • 将上述函数用的loc更换为iloc后,报错,不能用iloc来提取限定条件的数据
  • 其中,单独使用loc里面嵌套的函数df[‘Platform’].isin([‘Will’,‘GB’]),判断“Will”和“GB”是否在“Platform"里,输出结果如下:
    Python Pandas库学习笔记(一)_第22张图片

总结

loc是指location的意思,iloc中的i是指integer

  • loc works on labels in the index
  • iloc works on the positions in the index (so it only takes integers)
    即:
  • loc是根据行/列标签来索引
  • iloc是根据行/列号来索引
  • loc或者iloc,切片方式和列表类型的切片方式类似

你可能感兴趣的:(Python)