Python实战计划——第三周第二节:开始做简单的图表

视频重点

练习代码

扩展

1. 视频重点

1. 清洗整理数据
展现数据

for i in item_infoX.find().limit(300):
    print(i)

查看感性兴趣的字段则,print(i{'字段名'})
一个key对应多word的数据结构很常见如:地域:北京,-,朝阳
2. 更新数据库
db.collcetion.update()参数1:要更新的文件,参数2:改哪,怎么改,使用操作符$set
先备份数据 (类似Excel一个文件下表的操作)
show dbs 列出所有数据库
use 数据库名字 切换到该数据库
show tables 列出该数据库下的表collection
db.createCollection('新表名称')创建新表
db.A.copyTo('B')CollectionA复制到Collection B

  • 如果要更新所有:
    B.update({'_id':'i['_id']'},{'$set':{'area':area}})
for i in item_infoX.find():#找到item_infoX中的每一条记录
      if i['area']:#如果记录中有字段area,那么
          area = [i for i in i['area] if i not in punctuation]  #使列表area=[i],其中i为i['area']迭代出的不是标点符号的值
      else:#否则
          area = ['不明']
      item_infoY.update({'_id':i['_id']},{$set:{'area':area}})#collectionitem_infoY更新update(),第一个参数是字典,
所以是{},里面:前是key,后面是value,i['_id'],参数二,:前是操作符,后面是要改成的样子。

tips:
set()元组可以对list去重

3. 数据可视化

  • 导入库charts
  • 生成column柱状图的数据结构是:
    charts.plot(series, show='inline', options=dict(title=dict(text='图标名称')))
    参数一是数据来源的名字,参数二保证在jupyter中显示
  • 数据结构是:
    series = [{'name':name1,'data':[X],'type':types},{'name':name2,'data':[Y],'type':types}],其中的'name','date'不能改,'type':是指类型,比如column
  • 数据结构的生成器(generator)[1]
def data_gen(types): #数据生成器函数,参数是types,图标类型
    length = 0#初始化lengeth
    if length <= len(cates_index):#如果小于类型索引的长度
        for cates,times in zip(cates_index,post_times):
            data = {
                'name':cates,
                'data':[times],
                'type':types
                 }
            yield data
            #print(data)
            length += 1length#自加

2. 练习代码

Python实战计划——第三周第二节:开始做简单的图表_第1张图片
3-2homework.ipynb#.png

3. 扩展

jupyter使用
ipython的三种启动方式

  1. 终端输入jupyter notebook
    浏览器中打开,
  2. jupyter qtconsole
    qtconsole一共有3种启动方式,详见interactive qtconsole。
    不加参数。用matplotlib画的图会调用后台的其他图形化程序打开。
    –pylab。默认同1,但是用display函数能让图在qt界面里画上。
    –pylab=inline。画的图直接就在qt界面上显示了。
  3. 终端中的jupyter

  1. 带有yield 的函数被称为生成器generator,与return的区别是,return返回的是函数的整个结果,而yield只取了一次。在迭代中的效果就是函数先运行完,return了一堆数据,然后在其中迭代一个个的结果;而yield时,比如 for i in date_gen(column):函数得出一个data时,就给了i,在得出一个data时,再给i,这样data的占用的内存就得到控制。详见:Python yield 使用浅析 ↩

你可能感兴趣的:(Python实战计划——第三周第二节:开始做简单的图表)