写在开头:因为我自己接触python也有一段时间了,所以此份笔记是用来查漏补缺以及记录个人认为重要的知识点
1、数据分析的常规流程
2、缺失数据
- 对于缺失比例超过30%的指标,应该选择放弃这个指标,即做删除处理;
- 对于缺失比例低于30%的指标,一般进行填充处理,即使用0、均值或者众数进行填充。
3、为Jupyter Notebook添加目录
为了便于阅读,可为代码增加一个目录,通过点击下图右侧红框可以建成下图左侧红框的目录,通过点击目录跳转到相应的代码部分。
不过添加目录不是Jupyter Notebook自带的需要自己安装相应的插件,打开命令行,输入以下代码:
conda install -c conda-forge jupyter_contrib_nbextensions
详细安装,请参考为Jupyter Notebook添加目录
4、输出与输出格式设置
- 利用关键词print进行输出
>>>print("Hello World")
Hello World
- 对输出格式做一定的设置,可以使用str.format()方法进行设定:
其中str是一个字符串,将format里面的内容填充到str字符串的{}里- 一对一填充
>>>print('我正在学习:{}'.format('pyhton基础知识')) 我正在学习:python基础知识
- 多对多填充
>>>print('我正在学习{}中的{}'.format('python','基础知识')) 我正在学习python中的基础知识
- 浮点数设置
.2f表示以浮点数展示,且显示小数点后两位,.3f表示显示小数点后3位的浮点数,以此类推。
>>>print("{}约{:.2f}亿".format('中国单身人数',2)) 中国单身人数约2.00亿
- 百分数设置
.2%表示以百分比的形式展示,并且展示小数点后两位。
浮点数以及百分数设置中“:”必不可少>>>print("中国男性的比例占总人口的{:.2%}".format(0.519))
5、移除字符
一直以为strip()函数只是用来去除字符串首尾的空格的,但它是用来去除字符串的指定字符,默认移除字符串首尾的空格和换行符
>>>"AaA".strip("A")
"a"
6、导入文件路径或者文件名中包含中文
使用pandas.read_csv()读取文件时,当导入文件路径或者文件名中包含中文时,需要加入engine="pyhton"来消除报错,这个错误产生的原因是:当我们调用read_csv()方法时,默认使用C语言作为解析语言,我们只需要将默认值改为python就行,如果文件格式是csv utf-8,则编码格式也要跟着变为utf_8_sig;如果是文件格式是csv,则编码格式则为gbk。
7、导入sql文件
step1:将python与数据库进行连接
import pymsql
eng = pymql.connect(host='localhost',
user='user',
password='password',
db='db',
charset='utf-8')
# user:用户名
# password:密码
# db:数据库名
# charset:数据库编码,一般为utf-8
step2:执行sql查询语句
import pandas as pd
df = pd.read_sql(sql,con=eng)
# 参数sql是需要执行的sql语句
# con是step1建立好的连接,即eng
8、异常值的识别与处理
识别方式有以下3种:
- 根据业务经验划定不同指标的正常范围,超过正常范围的视为异常值;
-
利用四分位数将大于上边缘和小于下边缘的值视为异常值;
-
如果数据服从正态分布,可使用3σ原则:如果一个数值与平均值之间超过3倍的标准差(σ),则将其视为异常值。下图为正态分布图,大于u+3σ以及小于u-3σ的值视为异常值。
处理异常值的方法有以下几种:
- 最常用的方式就是删除
- 把异常值当作缺失值进行填充
- 把异常值当作特殊情况,研究异常值出现的原因
9、apply()与applymap()函数
apply()和applymap()都需要与匿名函数lambda结合使用
- apply()函数主要对DataFrame中的某一列或某一行的元素进行相同的函数操作
df['column_name'].apply(lambda x:x+1)
applymap()函数用于对DataFrame中的每一个元素进行相同的函数操作
df.applymap(lambda x:x+1)
10、将文件导出到多个sheet
使用ExcelWriter()函数
# 声明一个读写对象
# excelpath为文件存放的路径
writer = pd.ExcelWriter(excelpath,engine='xlsxwriter')
# 分别将表df1、df2、df3写入Excel中的sheet1、sheet2、sheet3
# 并命名为表1、表2、表3
df1.to_excel(writer,sheet_name = "表1")
df2.to_excel(writer,sheet_name = "表2")
df3.to_excel(writer,sheet_name = "表3")
# 保存读写的内容
writer.save()
读后感受:不适合新手小白,需要对python有一定的认知后阅读
附上pdf版:
链接:https://pan.baidu.com/s/1_oBc3Khi4CClw7nFDQSB1A
密码:jga1