原文:https://www.cnblogs.com/zzhzhao/p/5269217.html
目录
一、 数据分析有关的python库简介
(一)numpy
(二)pandas
(三)matplotlib
(四)scipy
(五)statsmodels
(六)scikit-learn
二、 数据的导入和导出
三、 数据筛选
四、 数据描述
五、 数据处理
六、 统计分析
七、 可视化
八、 其它

前言:各种和数据分析相关python库的介绍
(前言1~4摘抄自《利用python进行数据分析》)
1.Numpy:
Numpy是python科学计算的基础包,它提供以下功能(不限于此):
(1)快速高效的多维数组对象ndarray
(2)用于对数组执行元素级计算以及直接对数组执行数学运算的函数
(3)用于读写硬盘上基于数组的数据集的工具
(4)线性代数运算、傅里叶变换,以及随机数生成
(5)用于将C、C++、Fortran代码集成到python的工具
2.pandas
pandas提供了使我们能够快速便捷地处理结构化数据的大量数据结构和函数。pandas兼具Numpy高性能的数组计算功能以及电子表格和关系型数据(如SQL)灵活的数据处理能力。它提供了复杂精细的索引功能,以便更为便捷地完成重塑、切片和切块、聚合以及选取数据子集等操作。
对于金融行业的用户,pandas提供了大量适用于金融数据的高性能时间序列功能和工具。
DataFrame是pandas的一个对象,它是一个面向列的二维表结构,且含有行标和列标。
ps.引用一段网上的话说明DataFrame的强大之处:
Excel 2007及其以后的版本的最大行数是1048576,最大列数是16384,超过这个规模的数据Excel就会弹出个框框“此文本包含多行文本,无法放置在一个工作表中”。Pandas处理上千万的数据是易如反掌的事情,同时随后我们也将看到它比SQL有更强的表达能力,可以做很多复杂的操作,要写的code也更少。 说了一大堆它的好处,要实际感触还得动手码代码。
3.matplotlib
matplotlib是最流行的用于绘制数据图表的python库。
4.Scipy
Scipy是一组专门解决科学计算中各种标准问题域的包的集合。
5.statsmodels: https://github.com/statsmodels/statsmodels
6.scikit-learn: http://scikit-learn.org/stable/
一.数据导入和导出
注意:地址中的\ 是转义符,所以E:\必须表示为E:\\ 或者在路径前面加r,如:r'E:\tips.csv' 和'E:\\tips.csv' 等价
(一)读取csv文件
1.本地读取
import pandas as pd
df = pd.read_csv('E:\\tips.csv') #根据自己数据文件保存的路径填写(p.s. python填写路径时,要么使用/,要么使用\\) 路径不要有中文
#输出:
total_bill tip sex smoker day time size
16.99 1.01 Female No Sun Dinner 2
10.34 1.66 Male No Sun Dinner 3
21.01 3.50 Male No Sun Dinner 3
23.68 3.31 Male No Sun Dinner 2
24.59 3.61 Female No Sun Dinner 4
25.29 4.71 Male No Sun Dinner 4
.. ... ... ... ... ... ... ...
27.18 2.00 Female Yes Sat Dinner 2
22.67 2.00 Male Yes Sat Dinner 2
17.82 1.75 Male No Sat Dinner 2
18.78 3.00 Female No Thur Dinner 2
[244 rows x 7 columns]
2.网络读取
import pandas as pd
data_url = "https://raw.githubusercontent.com/mwaskom/seaborn-data/master/tips.csv" #填写url读取
df = pd.read_csv(data_url)
#输出同上,为了节省篇幅这儿就不粘贴了
print(df)
3.read_csv简单用法:
语句分析:
q_table6 = pd.read_csv('dl_data.csv',encoding = "utf-8",header = 0,names = range(0,50))
功能:将原来的列索引[-25......25]替换成[0....49]。
介绍:header = 0是默认情况(即不标明,默认就是header = 0),表示以数据的第一行为列索引。
encoding = "utf-8"表明以utf-8为编码规则。
names = range(0,50))表示以[0....49]为列索引的名字
q_table6 = pd.read_csv('dl_data.csv',encoding = "utf-8",header = None,names = range(0,50))
功能:给数据添加一行列索引[0....49],header = None表示原来的数据是没有列索引的,就算你的数据里面有列索引,这时就把原来的列索引当成了数据。
上面两个语句都会默认为数据添加行索引,即会把原来的行索引当成数据,自己再添加新的行索引[0,1,2.....] !!!!!!!如果不想添加新的行索引,代码如下:
q_table6 = pd.read_csv('dl_data.csv',encoding = "utf-8",index_col=0)
index_col=0表示以原有数据的第一列(索引为0)当作行索引。
详细参数:http://www.cnblogs.com/datablog/p/6127000.html
(二)读取Mysql数据
import pandas as pd
import MySQLdb
mysql_cn= MySQLdb.connect(host='localhost', port=3306,user='myusername', passwd='mypassword', db='mydb')
df = pd.read_sql('select * from test;', con=mysql_cn)
mysql_cn.close()
上面的代码读取了test表中所有的数据到df中,而df的数据结构为Dataframe。 ps.MySQL教程:http://www.runoob.com/mysql/mysql-tutorial.html
(三)读取excel文件
要读取excel文件还需要安装xlrd模块,pip install xlrd即可。
df = pd.read_excel('E:\\tips.xls')
(四)数据导出到csv文件
df.to_csv('E:\\demo.csv', encoding='utf-8', index=False) #index=False表示导出时去掉行名称,如果数据中含有中文,一般encoding指定为‘utf-8’