热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Python基本数据统计(一)便捷数据获取数据准备和整理数据显示

1.便捷数据获取1.1本地数据获取:文件的打开,读写和关闭(另外的单独章节)1.2网络数据获取:1.2.1ur

1. 便捷数据获取

  1.1 本地数据获取:文件的打开,读写和关闭(另外的单独章节)

  1.2 网络数据获取:

    1.2.1 urllib, urllib2, httplib, httplib2 (python3中为urllib.request, http.client)

      正则表达式(另外的单数章节)

    1.2.2 通过matplotlib.finace模块获取雅虎财经上的数据

In [7]: from matplotlib.finance import quotes_historical_yahoo_ochlIn [8]: from datetime import dateIn [9]: from datetime import datetimeIn [10]: import pandas as pdIn [11]: today = date.today()In [12]: start = (today.year-1, today.month, today.day)In [14]: quotes = quotes_historical_yahoo_ochl('AXP', start, today) # 获取数据In [15]: fields = ['date', 'open', 'close', 'high', 'low', 'volume']In [16]: list1 = []In [18]: for i in range(0,len(quotes)):...: x = date.fromordinal(int(quotes[i][0])) # 取每一行的第一列,通过date.fromordinal设置为日期数据类型...: y = datetime.strftime(x,'%Y-%m-%d') # 通过datetime.strftime把日期设置为指定格式...: list1.append(y) # 将日期放入列表中...: In [19]: quotesdf = pd.DataFrame(quotes,index=list1,columns=fields) # index设置为日期,columns设置为字段In [20]: quotesdf = quotesdf.drop(['date'],axis=1) # 删除date列In [21]: print quotesdfopen close high low volume
2016-01-20 60.374146 61.835916 62.336256 60.128882 9043800.0
2016-01-21 61.806486 61.453305 63.101479 61.325767 8992300.0
2016-01-22 57.283819 54.016907 57.774347 53.114334 43783400.0

    1.2.3 通过自然语言工具包NLTK获取语料库等数据

      1. 下载nltk:pip install nltk

      2. 下载语料库:

In [1]: import nltkIn [2]: nltk.download()
NLTK Downloader
---------------------------------------------------------------------------d) Download l) List u) Update c) Config h) Help q) Quit
---------------------------------------------------------------------------
Downloader
> dDownload which package (l=list; x=cancel)?Identifier> gutenbergDownloading package gutenberg to /root/nltk_data...Package gutenberg is already up-to-date!

      3. 获取数据:

In [3]: from nltk.corpus import gutenbergIn [4]: print gutenberg.fileids()
[u
'austen-emma.txt', u'austen-persuasion.txt', u'austen-sense.txt', u'bible-kjv.txt', u'blake-poems.txt', u'bryant-stories.txt', u'burgess-busterbrown.txt', u'carroll-alice.txt', u'chesterton-ball.txt', u'chesterton-brown.txt', u'chesterton-thursday.txt', u'edgeworth-parents.txt', u'melville-moby_dick.txt', u'milton-paradise.txt', u'shakespeare-caesar.txt', u'shakespeare-hamlet.txt', u'shakespeare-macbeth.txt', u'whitman-leaves.txt']In [5]: texts = gutenberg.words('shakespeare-hamlet.txt')In [6]: texts
Out[
6]: [u'[', u'The', u'Tragedie', u'of', u'Hamlet', u'by', ...]

2. 数据准备和整理

  2.1 quotes数据加入[ 列 ]属性名

In [79]: quotesdf = pd.DataFrame(quotes)In [80]: quotesdf
Out[
80]: 0 1 2 3 4 5
0
735983.0 60.374146 61.835916 62.336256 60.128882 9043800.0
1 735984.0 61.806486 61.453305 63.101479 61.325767 8992300.0
2 735985.0 57.283819 54.016907 57.774347 53.114334 43783400.0
3 735988.0 53.428272 53.977664 54.713455 53.114334 18498300.0[253 rows x 6 columns]In [81]: fields = ['date','open','close','high','low','volume']In [82]: quotesdf = pd.DataFrame(quotes,columns=fields) # 设置列属性名称In [83]: quotesdf
Out[
83]: date open close high low volume
0
735983.0 60.374146 61.835916 62.336256 60.128882 9043800.0
1 735984.0 61.806486 61.453305 63.101479 61.325767 8992300.0
2 735985.0 57.283819 54.016907 57.774347 53.114334 43783400.0
3 735988.0 53.428272 53.977664 54.713455 53.114334 18498300.0

  2.2 quotes数据加入[ index ]属性名

In [84]: quotesdf
Out[
84]: date open close high low volume
0
735983.0 60.374146 61.835916 62.336256 60.128882 9043800.0
1 735984.0 61.806486 61.453305 63.101479 61.325767 8992300.0
2 735985.0 57.283819 54.016907 57.774347 53.114334 43783400.0[253 rows x 6 columns]In [85]: quotesdf = pd.DataFrame(quotes, index=range(1,len(quotes)+1),columns=fields) # 把index属性从0,1,2...改为1,2,3...In [86]: quotesdf
Out[
86]: date open close high low volume
1 735983.0 60.374146 61.835916 62.336256 60.128882 9043800.0
2 735984.0 61.806486 61.453305 63.101479 61.325767 8992300.0
3 735985.0 57.283819 54.016907 57.774347 53.114334 43783400.0

  2.3 日期转换:Gregorian日历表示法 => 普通表示方法

In [88]: from datetime import dateIn [89]: firstday = date.fromordinal(735190)In [93]: firstday
Out[
93]: datetime.date(2013, 11, 18)In [95]: firstday = datetime.strftime(firstday,'%Y-%m-%d')In [96]: firstday
Out[
96]: '2013-11-18'

  2.4 创建时间序列:

In [120]: import pandas as pdIn [121]: dates = pd.date_range('20170101', periods=7) # 根据起始日期和长度生成日期序列In [122]: dates
Out[
122]:
DatetimeIndex([
'2017-01-01', '2017-01-02', '2017-01-03', '2017-01-04','2017-01-05', '2017-01-06', '2017-01-07'],dtype='datetime64[ns]', freq='D')In [123]: import numpy as npIn [124]: dates = pd.DataFrame(np.random.randn(7,3), index=dates, columns=list('ABC')) # 时间序列当作index,ABC当作列的name属性,表内容为七行三列随机数In [125]: dates
Out[
125]: A B C
2017-01-01 0.705927 0.311453 1.455362
2017-01-02 -0.331531 -0.358449 0.175375
2017-01-03 -0.284583 -1.760700 -0.582880
2017-01-04 -0.759392 -2.080658 -2.015328
2017-01-05 -0.517370 0.906072 -0.106568
2017-01-06 -0.252802 -2.135604 -0.692153
2017-01-07 -0.275184 0.142973 -1.262126

  2.5 练习

In [101]: datetime.now() # 显示当前日期和时间
Out[101]: datetime.datetime(2017, 1, 20, 16, 11, 50, 43258)
=========================================
In [
108]: datetime.now().month # 显示当前月份
Out[108]: 1=========================================
In [
126]: import pandas as pdIn [127]: dates = pd.date_range('2015-02-01',periods=10)In [128]: dates
Out[
128]:
DatetimeIndex([
'2015-02-01', '2015-02-02', '2015-02-03', '2015-02-04','2015-02-05', '2015-02-06', '2015-02-07', '2015-02-08','2015-02-09', '2015-02-10'],dtype='datetime64[ns]', freq='D')In [133]: res = pd.DataFrame(range(1,11),index=dates,columns=['value'])In [134]: res
Out[
134]: value
2015-02-01 1
2015-02-02 2
2015-02-03 3
2015-02-04 4
2015-02-05 5
2015-02-06 6
2015-02-07 7
2015-02-08 8
2015-02-09 9
2015-02-10 10

3. 数据显示

  3.1 显示方式:

In [180]: quotesdf2.index # 显示索引
Out[180]:
Index([u
'2016-01-20', u'2016-01-21', u'2016-01-22', u'2016-01-25',...u'2017-01-11', u'2017-01-12', u'2017-01-13', u'2017-01-17',u'2017-01-18', u'2017-01-19'],dtype='object', length=253)In [181]: quotesdf2.columns # 显示列名
Out[181]: Index([u'open', u'close', u'high', u'low', u'volume'], dtype='object')In [182]: quotesdf2.values # 显示数据的值
Out[182]:
array([[
6.03741455e+01, 6.18359160e+01, 6.23362562e+01,6.01288817e+01, 9.04380000e+06],..., [ 7.76100010e+01, 7.66900020e+01, 7.77799990e+01,7.66100010e+01, 7.79110000e+06]])In [183]: quotesdf2.describe # 显示数据描述
Out[183]:
<bound method DataFrame.describe of open close high low volume
2016-01-20 60.374146 61.835916 62.336256 60.128882 9043800.0
2016-01-21 61.806486 61.453305 63.101479 61.325767 8992300.0
2016-01-22 57.283819 54.016907 57.774347 53.114334 43783400.0

  3.2 索引的格式&#xff1a;u 表示unicode编码

  3.3 显示行&#xff1a;

In [193]: quotesdf.head(2) # 专用方式显示头两行
Out[193]: date open close high low volume
1 735983.0 60.374146 61.835916 62.336256 60.128882 9043800.0
2 735984.0 61.806486 61.453305 63.101479 61.325767 8992300.0In [194]: quotesdf.tail(2) # 专用方式显示尾两行
Out[194]: date open close high low volume
252 736347.0 77.110001 77.489998 77.610001 76.510002 5988400.0
253 736348.0 77.610001 76.690002 77.779999 76.610001 7791100.0In [195]: quotesdf[:2] # 切片方式显示头两行
Out[195]: date open close high low volume
1 735983.0 60.374146 61.835916 62.336256 60.128882 9043800.0
2 735984.0 61.806486 61.453305 63.101479 61.325767 8992300.0In [197]: quotesdf[251:] # 切片方式显示尾两行
Out[197]: date open close high low volume
252 736347.0 77.110001 77.489998 77.610001 76.510002 5988400.0
253 736348.0 77.610001 76.690002 77.779999 76.610001 7791100.0

4. 数据选择

5. 简单统计与处理

6. Grouping

7. Merge

转:https://www.cnblogs.com/wnzhong/p/6323475.html



推荐阅读
  • Python正则表达式学习记录及常用方法
    本文记录了学习Python正则表达式的过程,介绍了re模块的常用方法re.search,并解释了rawstring的作用。正则表达式是一种方便检查字符串匹配模式的工具,通过本文的学习可以掌握Python中使用正则表达式的基本方法。 ... [详细]
  • 基于dlib的人脸68特征点提取(眨眼张嘴检测)python版本
    文章目录引言开发环境和库流程设计张嘴和闭眼的检测引言(1)利用Dlib官方训练好的模型“shape_predictor_68_face_landmarks.dat”进行68个点标定 ... [详细]
  • 本文介绍了在处理不规则数据时如何使用Python自动提取文本中的时间日期,包括使用dateutil.parser模块统一日期字符串格式和使用datefinder模块提取日期。同时,还介绍了一段使用正则表达式的代码,可以支持中文日期和一些特殊的时间识别,例如'2012年12月12日'、'3小时前'、'在2012/12/13哈哈'等。 ... [详细]
  • Python爬虫中使用正则表达式的方法和注意事项
    本文介绍了在Python爬虫中使用正则表达式的方法和注意事项。首先解释了爬虫的四个主要步骤,并强调了正则表达式在数据处理中的重要性。然后详细介绍了正则表达式的概念和用法,包括检索、替换和过滤文本的功能。同时提到了re模块是Python内置的用于处理正则表达式的模块,并给出了使用正则表达式时需要注意的特殊字符转义和原始字符串的用法。通过本文的学习,读者可以掌握在Python爬虫中使用正则表达式的技巧和方法。 ... [详细]
  • 微软头条实习生分享深度学习自学指南
    本文介绍了一位微软头条实习生自学深度学习的经验分享,包括学习资源推荐、重要基础知识的学习要点等。作者强调了学好Python和数学基础的重要性,并提供了一些建议。 ... [详细]
  • Java太阳系小游戏分析和源码详解
    本文介绍了一个基于Java的太阳系小游戏的分析和源码详解。通过对面向对象的知识的学习和实践,作者实现了太阳系各行星绕太阳转的效果。文章详细介绍了游戏的设计思路和源码结构,包括工具类、常量、图片加载、面板等。通过这个小游戏的制作,读者可以巩固和应用所学的知识,如类的继承、方法的重载与重写、多态和封装等。 ... [详细]
  • 本文介绍了Python对Excel文件的读取方法,包括模块的安装和使用。通过安装xlrd、xlwt、xlutils、pyExcelerator等模块,可以实现对Excel文件的读取和处理。具体的读取方法包括打开excel文件、抓取所有sheet的名称、定位到指定的表单等。本文提供了两种定位表单的方式,并给出了相应的代码示例。 ... [详细]
  • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
  • 本文讨论了clone的fork与pthread_create创建线程的不同之处。进程是一个指令执行流及其执行环境,其执行环境是一个系统资源的集合。在调用系统调用fork创建一个进程时,子进程只是完全复制父进程的资源,这样得到的子进程独立于父进程,具有良好的并发性。但是二者之间的通讯需要通过专门的通讯机制,另外通过fork创建子进程系统开销很大。因此,在某些情况下,使用clone或pthread_create创建线程可能更加高效。 ... [详细]
  • 31.项目部署
    目录1一些概念1.1项目部署1.2WSGI1.3uWSGI1.4Nginx2安装环境与迁移项目2.1项目内容2.2项目配置2.2.1DEBUG2.2.2STAT ... [详细]
  • 【shell】网络处理:判断IP是否在网段、两个ip是否同网段、IP地址范围、网段包含关系
    本文介绍了使用shell脚本判断IP是否在同一网段、判断IP地址是否在某个范围内、计算IP地址范围、判断网段之间的包含关系的方法和原理。通过对IP和掩码进行与计算,可以判断两个IP是否在同一网段。同时,还提供了一段用于验证IP地址的正则表达式和判断特殊IP地址的方法。 ... [详细]
  • 本文介绍了一种轻巧方便的工具——集算器,通过使用集算器可以将文本日志变成结构化数据,然后可以使用SQL式查询。集算器利用集算语言的优点,将日志内容结构化为数据表结构,SPL支持直接对结构化的文件进行SQL查询,不再需要安装配置第三方数据库软件。本文还详细介绍了具体的实施过程。 ... [详细]
  • Python操作MySQL(pymysql模块)详解及示例代码
    本文介绍了使用Python操作MySQL数据库的方法,详细讲解了pymysql模块的安装和连接MySQL数据库的步骤,并提供了示例代码。内容涵盖了创建表、插入数据、查询数据等操作,帮助读者快速掌握Python操作MySQL的技巧。 ... [详细]
  • 开源Keras Faster RCNN模型介绍及代码结构解析
    本文介绍了开源Keras Faster RCNN模型的环境需求和代码结构,包括FasterRCNN源码解析、RPN与classifier定义、data_generators.py文件的功能以及损失计算。同时提供了该模型的开源地址和安装所需的库。 ... [详细]
  • Python使用Pillow包生成验证码图片的方法
    本文介绍了使用Python中的Pillow包生成验证码图片的方法。通过随机生成数字和符号,并添加干扰象素,生成一幅验证码图片。需要配置好Python环境,并安装Pillow库。代码实现包括导入Pillow包和随机模块,定义随机生成字母、数字和字体颜色的函数。 ... [详细]
author-avatar
寤丨惘_191
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有