《对比Excel,轻松学习Python数据分析》读书笔记------Pandas入门
Pandas入门
- 2 Python准备
- 2.1 Python
- 2.2 Jupyter Notebook
- 3 Pandas 基本数据结构
- 3.0 导入Pandas
- 3.1 Series对象
- 3.1.1 Series总览
- 3.1.2 创建Series对象
- 3.1.3 获取全部索引
- 3.1.4 获取全部数据
- 3.2 DataFrame对象
- 3.2.1 DataFrame总览
- 3.2.2 创建DataFrame对象
- 3.2.3 获取行列索引
- 3.3.4 获取数据
- 4 获取数据源
- 4.1 导入外部数据
- 4.1.1 导入xlsl文件
- 4.1.2 导入CSV文件
- 4.1.3 导入txt文件
- 4.1.4 导入mysql文件
- 4.2 新建数据
- 4.3 熟悉数据
- 4.3.1 预览前几行
- Excel
- Python
- 4.3.2 获取数据表的大小
- Excel
- Python
- 4.3.4 查看字段的数据类型
- Excel
- Python
- 4.3.5 查看基本的数值分布
- Excel
- Python
2 Python准备
2.1 Python
- 安装Python(下载地址)
- 熟悉Python基础语法
我的python学习笔记专栏
2.2 Jupyter Notebook
- 安装Anaconda(下载地址)
- 打开Anaconda Prompt,先后输入
pip install jupyter_contrib_nbextensionsjupyter contrib nbextensions install --user
安装插件管理模块
- 打开Jupyter Notebook,等待跳转服务器
- 安装"Tables of contents(2)"插件
- 新建文件
- 输入代码或markdown
- 继续熟悉各项功能
- 查看和修改设置文件
打开Anaconda Prompt,输入
jupyter notebook --generate-config #获取系统配置文件目录
进入对应文件夹找到配置文件目录,进入并修改
- 修改界面样式
"anoconda\Lib\site-packages\notebook\static\components\codemirror\lib\codemirror.css"
3 Pandas 基本数据结构
3.0 导入Pandas
import pandas as pd
3.1 Series对象
3.1.1 Series总览
Series
是Pabdas中一种类似一维列表的对象。
它由一个索引和一个数据组成。
在Excel中类似以下效果:
3.1.2 创建Series对象
pd.Series(data=None,index=None,dtype: 'Dtype | None' = None,name=None,copy: 'bool' = False,
)
data
需要传入一个序列类型的对象(列表、元组、字典等)index
可以传入一个由索引名组成的列表dtype
可以设置数据类型name
可以给Series对象设置一个别名copy
设置是否复制data
常见的如:
names=pd.Series(["赵","钱","孙","李","孙","王","郑","王"]) #传入列表
print(names) #索引默认从0开始
"""
0 赵
1 钱
2 孙
3 李
4 孙
5 王
6 郑
7 王
dtype: object
"""names=pd.Series(["赵","钱","孙","李","孙","王","郑","王"],[1,2,3,4,5,6,7,8]) #指定索引
print(names)
"""
1 赵
2 钱
3 孙
4 李
5 孙
6 王
7 郑
8 王
dtype: object
"""grades=pd.Series({"第一名":"张三","第二名":"李四","第三名":"王二麻子"}) #传入字典
print(grades) #key为索引,value为数据
"""
第一名 张三
第二名 李四
第三名 王二麻子
dtype: object
"""
3.1.3 获取全部索引
series_obj.index
- 获取
Series
对象series_obj
的全部索引。 - 返回
Index
类型的对象
如:
names_index = names.index
print(names_index)
# Int64Index([1, 2, 3, 4, 5, 6, 7, 8], dtype='int64')grades_index = grades.index
print(grades_index)
# Index(['第一名', '第二名', '第三名'], dtype='object')
3.1.4 获取全部数据
series_obj.values
- 获取``Series
对象
series_obj`的全部数据。 - 返回
numpy.ndarray
类型的对象
如:
names_values = names.values
print(names_values)
# ['赵' '钱' '孙' '李' '孙' '王' '郑' '王']grades_values = grades.values
print(grades_values)
# ['张三' '李四' '王二麻子']
3.2 DataFrame对象
3.2.1 DataFrame总览
DataFrame
是Pabdas中一种类似表格的对象。
它由一对索引(行索引和列索引)和一组数据组成。
在Excel中类似以下效果:
3.2.2 创建DataFrame对象
pd.DataFrame(data=None,index: 'Axes | None' = None,columns: 'Axes | None' = None,dtype: 'Dtype | None' = None,copy: 'bool | None' = None,
)
data
需要传入一个序列类型的对象(列表、元组、字典等),多为二维index
设置行索引columns
设置列索引dtype
设置数据类型copy
设置是否复制data
如:
df1=pd.DataFrame(["a","b","c","d"])
print(df1) #一维也会自动设置行列索引,从0开始
"""0
0 a
1 b
2 c
3 d
"""df2=pd.DataFrame([["a","A"],["b","B"],["c","C"],["d","D"]])
print(df2) # 二维列表,内层列表是每行
"""0 1
0 a A
1 b B
2 c C
3 d D
"""df3=pd.DataFrame([["a","A"],["b","B"],["c","C"],["d","D"]],index=[1,2,3,4],columns=["lower","upper"])
print(df3) # index设置行索引,columns设置列索引
"""lower upper
1 a A
2 b B
3 c C
4 d D
"""df4=pd.DataFrame({"lower":["a","b","c","d"],"upper":["A","B","C","D"]},index=[1,2,3,4])
print(df4) # 字典的key是列索引,value是每列,行索引可以通过index另外设置
"""lower upper
1 a A
2 b B
3 c C
4 d D
"""
3.2.3 获取行列索引
df_obj.index # 获取所有行索引
df_obj.columns # 获取所有列索引
- 返回
Index
类型的对象
如:
df4_index=df4.index
print(df4_index)
# Int64Index([1, 2, 3, 4], dtype='int64')df4_columns=df4.columns
print(df4.columns)
# Index(['lower', 'upper'], dtype='object')
3.3.4 获取数据
第六章讨论
4 获取数据源
4.1 导入外部数据
4.1.1 导入xlsl文件
xlsl文件是Excel表格文件。对应Excel"来自文件"的"从Excel工作簿"
pd.read_excel(io,sheet_name: 'str | int | list[IntStrT] | None' = 0,header: 'int | Sequence[int] | None' = 0,names=None,index_col: 'int | Sequence[int] | None' = None,usecols=None,dtype: 'DtypeArg | None' = None,nrows: 'int | None' = None
)
io
设置导入的xlsl文件的路径sheet_name
设置需要导入的sheet,可以用sheet名字符串,也可以传入数字(从0开始),默认第一张。header
设置使用哪一行作为列索引。默认以第一行作为列索引。可以传入数字(从0开始)。names
设置列索引。先要设置header=None
禁用表中的行作为列索引。可以传入列表来指定列索引。index_col
设置使用哪一列来作为行索引。可以传入数字(从0开始)。usecols
设置导入哪几列数据。可以传入数字组成的列表类数据(从0开始)。dtype
设置每一列的数据类型。可以传入字典。key是列索引,value是数据类型。nrows
设置显示前几行数据。- 返回一个
DataFrame
对象
如:
grades_df=pd.read_excel("./files/学生成绩单.xlsx",sheet_name="第一学期期末成绩",index_col=1,usecols=[0,1,3,4,5,6,7,8,9],nrows=5)
print(grades_df)
"""学号 语文 数学 英语 生物 地理 历史 政治
姓名
包宏伟 120305 91.5 89 94 92 91 86 86
陈万地 120203 93.0 99 92 86 86 73 92
杜学江 120104 102.0 116 113 78 88 86 73
符合 120301 99.0 98 101 95 91 95 78
吉祥 120306 101.0 94 99 90 87 95 93
"""
4.1.2 导入CSV文件
逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据。
pd.read_csv(filepath_or_buffer: 'FilePath | ReadCsvBuffer[bytes] | ReadCsvBuffer[str]',delimiter=None,header='infer',names=<no_default>,index_col=None,usecols=None,dtype: 'DtypeArg | None' = None,engine: 'CSVEngine | None' = None,nrows=None,encoding=None,
)
filepath_or_buffer
设置csv文件路径delimiter
设置数据间的分隔符(默认为逗号)header
、names
、index_col
、usecols
、dtype
、nrows
同read_excel()
方法engine
指定解析引擎,路径中有中文时,可尝试传入engine=python
encoding
指定csv编码格式,常见的有gbk
或utf-8
- 返回一个
DataFrame
对象
如:
grades_df=pd.read_csv("./files/学生成绩单.CSV",index_col=1,engine="python",usecols=[0,1,3,4,5,6,7,8,9],nrows=5,encoding="gbk")
print(grades_df)
"""学号 语文 数学 英语 生物 地理 历史 政治
姓名
包宏伟 120305 91.5 89 94 92 91 86 86
陈万地 120203 93.0 99 92 86 86 73 92
杜学江 120104 102.0 116 113 78 88 86 73
符合 120301 99.0 98 101 95 91 95 78
吉祥 120306 101.0 94 99 90 87 95 93
"""
4.1.3 导入txt文件
txt文件就是普通的文本文件
pd.read_table(filepath_or_buffer: 'FilePath | ReadCsvBuffer[bytes] | ReadCsvBuffer[str]',delimiter=None,header='infer',names=<no_default>,index_col=None,usecols=None,dtype: 'DtypeArg | None' = None,engine: 'CSVEngine | None' = None,nrows=None,encoding=None,
)
同read_csv
,只不过delimiter
没有默认值,需要用户指定。
返回一个DataFrame
对象
也可以读取csv文件。
rades_df=pd.read_csv("./files/学生成绩单.txt",delimiter=",",index_col=1,engine="python",usecols=[0,1,3,4,5,6,7,8,9],nrows=5,encoding="gbk")
print(grades_df)
"""学号 语文 数学 英语 生物 地理 历史 政治
姓名
包宏伟 120305 91.5 89 94 92 91 86 86
陈万地 120203 93.0 99 92 86 86 73 92
杜学江 120104 102.0 116 113 78 88 86 73
符合 120301 99.0 98 101 95 91 95 78
吉祥 120306 101.0 94 99 90 87 95 93
"""
4.1.4 导入mysql文件
使用pymysql
模块连接数据库并导入数据表
import pymysql
con=pymysql.connect(host="localhost",port=3306,user="root",password="123",database="pdd",charset="utf8")pd.read_sql(sql,con,index_col: 'str | Sequence[str] | None' = None,columns=None)
sql
为SQL语句,con
是与数据库建立的连接对象index_col
指定作为行索引的列。返回一个
DataFrame
对象
如:
import pymysql
con=pymysql.connect(host="localhost",port=3306,user="root",password="123",database="pdd",charset="utf8")goods=pd.read_sql("select id,name,price from goods;",con,index_col="id")
print(goods)
"""name price
id
1 2022解题达人数学选择填空题 7.92
2 C Primer Plus中文第6版 53.80
3 大型单机电脑合集 100.00
4 2022五年高考三年模拟数学 18.80
5 夏季女装 29.90
"""
4.2 新建数据
主要通过pd.DataFrame
创建。
4.3 熟悉数据
4.3.1 预览前几行
Excel
Excel会直接把所有数据显示。
Python
df_obj.head(n)
n
代表显示前n行
如:
print(goods.head(5))
"""name price
id
1 2022解题达人数学选择填空题 7.92
2 C Primer Plus中文第6版 53.80
3 大型单机电脑合集 100.00
4 2022五年高考三年模拟数学 18.80
5 夏季女装 29.90
"""print(goods.head(3))
"""name price
id
1 2022解题达人数学选择填空题 7.92
2 C Primer Plus中文第6版 53.80
3 大型单机电脑合集 100.00
"""
4.3.2 获取数据表的大小
Excel
选中某行看列数,选中某列看列数,选中某区域看个数。
- 包含索引
Python
df_obj.shape
- 以元组形式返回行数和列数
- 不包含索引
如:
grades_df = pd.read_excel("./files/学生成绩单.xlsx",sheet_name="第一学期期末成绩",index_col=1)
print(grades_df)
"""学号 班级 语文 数学 英语 生物 地理 历史 政治 总分 平均分
姓名
包宏伟 120305 NaN 91.5 89 94 92 91 86 86 NaN NaN
陈万地 120203 NaN 93.0 99 92 86 86 73 92 NaN NaN
杜学江 120104 NaN 102.0 116 113 78 88 86 73 NaN NaN
符合 120301 NaN 99.0 98 101 95 91 95 78 NaN NaN
吉祥 120306 NaN 101.0 94 99 90 87 95 93 NaN NaN
李北大 120206 NaN 100.5 103 104 88 89 78 90 NaN NaN
李娜娜 120302 NaN 78.0 95 94 82 90 93 84 NaN NaN
刘康锋 120204 NaN 95.5 92 96 84 95 91 92 NaN NaN
刘鹏举 120201 NaN 93.5 107 96 100 93 92 93 NaN NaN
倪冬声 120304 NaN 95.0 97 102 93 95 92 88 NaN NaN
齐飞扬 120103 NaN 95.0 85 99 98 92 92 88 NaN NaN
苏解放 120105 NaN 88.0 98 101 89 73 95 91 NaN NaN
孙玉敏 120202 NaN 86.0 107 89 88 92 88 89 NaN NaN
王清华 120205 NaN 103.5 105 105 93 93 90 86 NaN NaN
谢如康 120102 NaN 110.0 95 98 99 93 93 92 NaN NaN
闫朝霞 120303 NaN 84.0 100 97 87 78 89 93 NaN NaN
曾令煊 120101 NaN 97.5 106 108 98 99 99 96 NaN NaN
张桂花 120106 NaN 90.0 111 116 72 95 93 95 NaN NaN
"""
print(grades_df.shape)
# (18, 11)
4.3.4 查看字段的数据类型
Excel
选中想要查看的数据列,在"数字"栏查看。
Python
df_obj.info()
- 显示
df_obj
的基本信息,如行索引Index
,列索引Data volumns
,每列的非空值个数和数据类型
如:
grades_df.info()
"""
<class 'pandas.core.frame.DataFrame'>
Index: 18 entries, 包宏伟 to 张桂花
Data columns (total 11 columns):# Column Non-Null Count Dtype
--- ------ -------------- ----- 0 学号 18 non-null int64 1 班级 0 non-null float642 语文 18 non-null float643 数学 18 non-null int64 4 英语 18 non-null int64 5 生物 18 non-null int64 6 地理 18 non-null int64 7 历史 18 non-null int64 8 政治 18 non-null int64 9 总分 0 non-null float6410 平均分 0 non-null float64
dtypes: float64(4), int64(7)
memory usage: 1.7+ KB
"""
4.3.5 查看基本的数值分布
Excel
选中某一列,可以看到数据的平均值、总个数、和
Python
df_obj.describe()
- 显示
df_obj
的各列的信息。如总个数(count
),平均值(count
),标准差(std
),最小值(min
),下四分位数(25%
),中位数(50%
),上四分位数(75%
),最大值(max
)
如:
grades_df.describe()
"""学号 班级 语文 数学 英语 生物 \
count 18.000000 0.0 18.000000 18.000000 18.000000 18.000000
mean 120203.500000 NaN 94.611111 99.833333 100.222222 89.555556
std 84.035182 NaN 7.729918 7.890799 7.025630 7.492916
min 120101.000000 NaN 78.000000 85.000000 89.000000 72.000000
25% 120105.250000 NaN 90.375000 95.000000 96.000000 86.250000
50% 120203.500000 NaN 95.000000 98.500000 99.000000 89.500000
75% 120301.750000 NaN 100.125000 105.750000 103.500000 94.500000
max 120306.000000 NaN 110.000000 116.000000 116.000000 100.000000 地理 历史 政治 总分 平均分
count 18.000000 18.000000 18.000000 0.0 0.0
mean 90.000000 90.000000 88.833333 NaN NaN
std 6.211943 6.259111 5.873670 NaN NaN
min 73.000000 73.000000 73.000000 NaN NaN
25% 88.250000 88.250000 86.500000 NaN NaN
50% 91.500000 92.000000 90.500000 NaN NaN
75% 93.000000 93.000000 92.750000 NaN NaN
max 99.000000 99.000000 96.000000 NaN NaN
"""
《对比Excel,轻松学习Python数据分析》读书笔记------Pandas入门相关推荐
- 『对比Excel,轻松学习Python数据分析』新书发布
之前在公众号提过,我写了一本书,现在这本书终于面世了,这本书就是『对比Excel,轻松学习Python数据分析』,这本书是写什么的,以及这本书怎么写的,相信大家通过书名就能了解一二,但还是有必要专门写 ...
- python和excel的区别-对比Excel,轻松学习Python数据分析
阅读权限50威望2 级论坛币2119 个学术水平357 点热心指数383 点信用等级313 点经验103301 点帖子917精华在线时间8677 小时注册时间2012-3-28最后登录2020-10- ...
- 好书推荐:《对比Excel,轻松学习Python数据分析》
之前就一直有打算出一个结合Excel的Python数据分析的教程,刚好张俊红同学就出了书籍,后面写相关文章又多了一本好书.我首先说说我的看法,为什么要和Excel做结合了. Excel大家都熟悉,结合 ...
- 怎么学python-如何轻松学习Python数据分析
1.实际的工作 如果你是一名数据分析师,我相信你对上面的这些词应该不陌生.我自己在刚开始做数据分析的时候,基本上每天就是Excel,就是Excel里面的vlookup.sumifs.数据透视表这些,s ...
- 如何轻松学习Python数据分析?
总第135篇/张俊红 今天这篇文章来聊聊如何轻松学习『Python数据分析』,我会以一个数据分析师的角度去聊聊做数据分析到底有没有必要学习编程.学习Python,如果有必要,又该如何学习才能做到毫不费 ...
- 学python处理数据_如何轻松学习Python数据分析?
原标题:如何轻松学习Python数据分析? 今天这篇文章来聊聊如何轻松学习『Python数据分析』,我会以一个数据分析师的角度去聊聊做数据分析到底有没有必要学习编程.学习Python,如果有必要,又该 ...
- asp sql查询过滤空格_对比Excel,轻松学习SQL数据分析数据笔记02
本文主要梳理<对比Excel,轻松学习SQL数据分析>对于自己有用的sql知识.这本书中的所有代码和函数均适用于my sql 8.0版本. SQL的基本功能数据定义(DDL)--对数据库, ...
- 《对比Excel,轻松学习Python数据分析》读书笔记------数据运算
数据运算 8 数据运算 8.1 算术运算 Excel Python 8.2 比较运算 Excel Python 8.3 汇总运算 8.3.1 计算总个数count Excel Python 8.3.2 ...
- 《对比excel,轻松学习python数据分析》学习笔记
文章目录 前言 为什么要学习python 为什么要对比excel学习python 第1章 数据分析基础 数据分析的作用 数据分析的内容 数据分析的流程 第2章 python基础知识 1.python介 ...
- 如何自学python数据分析-如何轻松学习Python数据分析?
今天这篇文章来聊聊如何轻松学习『Python数据分析』,我会以一个数据分析师的角度去聊聊做数据分析到底有没有必要学习编程.学习Python,如果有必要,又该如何学习才能做到毫不费力. 1. 实际的工作 ...
最新文章
- 彻底搞透视觉三维重建:原理剖析、代码讲解、及优化改进
- chrome浏览器上传文件延迟_扫描识别工具Dynamic Web TWAIN使用教程:移动浏览器捕获(下)...
- 2019年春季学期第三周作业
- IOS APP 国际化 程序内切换语言实现 不重新启动系统(支持项目中stroyboard 、xib 混用。完美解决方案)
- 【PWA学习与实践】(3) 让你的WebApp离线可用
- margin 和 padding 的使用区别
- JetBrains 加入 .NET 基金会
- Makefile学习(一)[第二版]
- 机器学习基础(五十六)—— tanh、sign 与 softsign
- Docker 18.09.0更换阿里镜像加速器
- 【知识兔】自学Excel之8:数据输入与编辑(基础操作)
- MindManager 思维导图全面介绍
- java 泛型缺点_Go 与 泛型: 优点 or 缺陷
- 英文产品网站的搜索引擎推广
- 搭建jenkins共享库使用Jenkins Shared Library
- linux的地址随机化ASLR,[翻译]Linux (x86) Exploit 开发系列教程之六(绕过ASLR - 第一部分)...
- 孕妇免疫力低怎么办?就看蛋白粉的功效!
- 《游戏视频主播手册》——第2章 视频直播平台 2.1 主流游戏视频直播平台
- 基于BSN的财智联盟链在财税金融领域的应用
- DDos攻击下的黑色产业链