“Python”的版本间的差异

来自Wiki.Citydatum
跳转至: 导航搜索
第59行: 第59行:
 
! 操作流程 !! 步骤说明 !! 常用命令/库.函数
 
! 操作流程 !! 步骤说明 !! 常用命令/库.函数
 
|-
 
|-
| '''数据导入/导出''' || 读写csv、Excel等格式文件;<br/>连接、读写、查询MySQL数据库; || pandas.read_csv("路径文件名或文件网址")、pandas.read_excel("路径文件名或文件网址")、to_csv('文件名', encoding='utf-8', index=False);<br/>MySQLdb.connect(host='服务器URL', port=端口号,user='用户名', passwd='密码', db='数据库名称')、pandas.read_sql('SQL语句', con=连接变量);
+
| rowspan = 2 | '''数据导入/导出''' || 读写csv、Excel等格式文件 || pandas.read_csv("路径文件名或文件网址")、pandas.read_excel("路径文件名或文件网址")、to_csv('文件名', encoding='utf-8', index=False);
 
|-
 
|-
| '''提取和筛选需要的数据''' || -- || --
+
| 连接、查询、读写MySQL数据库 || MySQLdb.connect(host='服务器URL', port=端口号,user='用户名', passwd='密码', db='数据库名称')、pandas.read_sql('SQL语句', con=连接变量);
 
|-
 
|-
| '''统计描述''' || -- || --
+
| rowspan =2 | '''提取和筛选数据''' || 浏览与提取数据 || df.head(), df.tail(), df.columns, df.index, df.ix[行范围,列范围 (.loc、.iloc、.iat等), df.shape;
 
|-
 
|-
| '''数据处理''' || 转置;<br/>排序;<br/>处理缺失值;<br/>数据分组;<br/>值替换; || dataframe.T;<br/>dataframe.sort_values(by='字段名’);<br/>dataframe['字段名'].fillna(缺失替换值);<br/>df.groupby('字段名');<br/>data.replace(查找值,替换值)
+
| 筛选数据 || dataframe[筛选条件(支持逻辑运算符)];
 
|-
 
|-
| '''统计分析''' || t检验;<br/>方差分析;<br/>卡方检验;<br/>计数统计;<br/>回归分析;|| --
+
| '''统计描述''' || 计数、均值、分位指等 || dataframe.describe();
 
|-
 
|-
| '''可视化''' || -- || --
+
| rowspan = 5 | '''数据处理''' || 转置 || dataframe.T;
 
+
|-
 +
| 排序 || dataframe.sort_values(by='字段名’);
 +
|-
 +
| 处理缺失值 || dataframe['字段名'].fillna(缺失替换值);
 +
|-
 +
| 数据分组 || df.groupby('字段名');
 +
|-
 +
| 值替换 || data.replace(查找值,替换值);
 +
|-
 +
| rowspan = 5 | '''统计分析''' || t检验 || 对两样本来自是否有显著差异进行推断;独立样本t检验:ttest_ind(Group1,Group2);配对样本t检验:ttest_rel(Group1,Group2);
 +
|-
 +
| 方差分析 || levene方差齐性检验:levene(*args, **kwds) ,如果p<0.05,则方差不齐;
 +
|-
 +
| 卡方检验 || 指统计样本的实际观测值与理论推断值之间的偏离程度;单因素卡方检验,chisquare(observed,expected);
 +
|-
 +
| 计数统计 || dataframe['字段名'].value_counts();
 +
|-
 +
| 回归分析 || 数据拟合,广义线性回归;
 +
|-
 +
| rowspan = 2 | '''可视化''' || 图表设置、绘制、存储 || plt.figure();lmplot().savefig('路径文件名');
 +
|-
 +
| xkcd风格的图表 || plt.xkcd();
 
|}
 
|}
  

2018年10月4日 (四) 18:18的版本

TODO
提示:欢迎帮助我们进一步提升文章质量,当前重点任务包括:
  • 章节补充:补充案例、上手章节内容;
  • 图片补充:用python绘制示例图表、以python为主要工具构建的网站或应用的截屏;
  • 内容优化:概况章节的补充完善,补充来源引用与更多阅读章节的链接;


Python标识

Python是一款自由、开源的高级解释性计算机编程语言,遵循 GPL(GNU General Public License)协议。Python语法简洁清晰,具有丰富和强大的库,能够把用其他语言制作的各种模块(尤其是C/C++)轻松地联结在一起。在IEEE发布2017年编程语言排行榜中,Python高居首位[1]

概况

发展历程

  • Python是一种高级编程语言,由荷兰人Guido van Rossum创建并于1991首次发布。

主要特点

  • Python是一种解释性语言,特别强调代码的可读性,最典型的例子就是Python用行缩进来区分代码块,而不是其他编程语言中较为常见的大括号。
  • Python常常被称为胶水语言,能将其他编程语言制作的各种模块连接在一起。

  • Python拥有一个强大的标准库,提供了系统管理、网络通信、文本处理、数据库接口、图形系统、XML处理等额外的功能。Python标准库提供的工具适用于多种类型的任务,如:针对面向互联网的应用,提供了对MIME、HTTP等标准格式与协议的支持;针对图形用户界面(GUI)应用,提供了关系数据库连接、随机数生成、任意位数小数算法支持、正则表达式操作、单元测试等各类模块。Python标准库命名接口清晰、文档良好,很容易学习和使用。
  • Python社区提供了大量的第三方模块,使用方式与标准库类似。它们的功能无所不包,覆盖科学计算、Web开发、数据库接口、图形系统多个领域,并且大多成熟而稳定。第三方模块可以使用Python或者C语言编写。截止2018年3月, Python官方第三方资源库Python Package Index (PyPI)已收录超过13万项各类功能包。

与R语言的比较

  • 共同点R语言与Python是数据分析领域中最流行的两个编程语言,他们都是免费的、都有活跃的社区支持,以及都提供开源的工具和库;
  • 应用场景:R语言的优势在于统计和图形模型,因此它更多的被学者、数据科学家和统计人员所采用;而Python更注重生产力和代码可读性,作为一种通用语言,Python拥有相对R语言更为广泛的应用领域,如Web开发、机器学习、智能控制等,因而在具有软件工程背景的数据科学工作者、开发者、工程师和程序员中更受欢迎;
  • 学习曲线:Python的用户学习曲线较平缓;而R语言对初学者来说,有一个较为陡峭的学习曲线,且R语言在数据分析之外的功能很有限,一些用户库写得较差、运行较为缓慢;

应用

Python灵活且各类爬虫库、数据分析库、数据可视化库较为丰富,很适合用于做数据抓取的主体架构,并基于这些数据做分析及可视化[2],可将互联网上越来越丰富的数据为各种类型的城市规划与研究所用。

网络数据抓取

  • 交通:抓取12306火车、机票网站数据;搭建各个机场的实时流量图;
  • 财经:抓取雪球及各类财经网站数据;
  • 住宅:抓取58、搜房、链家等房屋租售数据;
  • 自然资源:抓取天气数据,环境质量(PM2.5)数据;
  • 地点舆情:抓取新浪微博的用户发言及舆论数据;
  • 科技行业:抓取各应用商店的App的下载量及评论数据;追踪各门类App下载量热点,热点行业走势;
  • 服务行业:抓取大众点评及美团网的餐饮及各类线下门店消费及评价情况;绘制城市早晚高峰时段(某类)人群出行的热点图;

数据分析

上手

网络爬取

Python3.x的标准库urllib,将Python2.x的标准库urllib,urllib2功能进行了整合,提供网络爬取的相关功能。一个简单的抓取基本操作如下:

from urllib import request     #Python3.x下引用库,Python2.x下引用urllib2,通过urllib2.urlopen()调用

file = request.urlopen("http://wiki.citydatum.com")

data = file.read()    #读取全部页面,数据格式为bytes类型

data_str = data.decode('utf-8')    #解码,转换为str类型

fhandle=open("./1.html","wb")    #将爬取的网页保存在本地
fhandle.write(data)
fhandle.close()

数据分析

基本操作流程

操作流程 步骤说明 常用命令/库.函数
数据导入/导出 读写csv、Excel等格式文件 pandas.read_csv("路径文件名或文件网址")、pandas.read_excel("路径文件名或文件网址")、to_csv('文件名', encoding='utf-8', index=False);
连接、查询、读写MySQL数据库 MySQLdb.connect(host='服务器URL', port=端口号,user='用户名', passwd='密码', db='数据库名称')、pandas.read_sql('SQL语句', con=连接变量);
提取和筛选数据 浏览与提取数据 df.head(), df.tail(), df.columns, df.index, df.ix[行范围,列范围 (.loc、.iloc、.iat等), df.shape;
筛选数据 dataframe[筛选条件(支持逻辑运算符)];
统计描述 计数、均值、分位指等 dataframe.describe();
数据处理 转置 dataframe.T;
排序 dataframe.sort_values(by='字段名’);
处理缺失值 dataframe['字段名'].fillna(缺失替换值);
数据分组 df.groupby('字段名');
值替换 data.replace(查找值,替换值);
统计分析 t检验 对两样本来自是否有显著差异进行推断;独立样本t检验:ttest_ind(Group1,Group2);配对样本t检验:ttest_rel(Group1,Group2);
方差分析 levene方差齐性检验:levene(*args, **kwds) ,如果p<0.05,则方差不齐;
卡方检验 指统计样本的实际观测值与理论推断值之间的偏离程度;单因素卡方检验,chisquare(observed,expected);
计数统计 dataframe['字段名'].value_counts();
回归分析 数据拟合,广义线性回归;
可视化 图表设置、绘制、存储 plt.figure();lmplot().savefig('路径文件名');
xkcd风格的图表 plt.xkcd();

常见相关库

名称 功能概述
numpy python科学计算的基础包;numpy提供了快速高效的多维数组对象ndarray、对数组执行元素级计算以及直接对数组执行数学运算的函数、读写硬盘上基于数组的数据集的工具,线性代数运算、傅里叶变换、随机数生成功能,以及将C、C++、Fortran代码集成到python的工具;
pandas 提供了能够快速便捷处理结构化数据的大量数据结构和函数;pandas兼具numpy高性能的数组计算功能以及电子表格和关系型数据(如SQL)灵活的数据处理能力,提供了复杂精细的索引功能,以便更为便捷地完成重塑、切片和切块、聚合以及选取数据子集等操作;
MySQLdb 提供MySQL数据库连接等功能的Python库;
xlrd 提供读取Excel文件功能的Python库;
matplotlib 最为流行的数据图表绘制Python库;
scipy 一组专门解决科学计算中各种标准问题域的包的集合;
statsmodels 用于统计分析各类模型的模型集合;(Github页面
scikit-learn 一些用于数据挖掘与分析的,简单、高效的工具集(官方网站

参考

参考资料

外部链接