视频重点
练习代码
扩展
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')Collection
A复制到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. 练习代码
3. 扩展
jupyter使用
ipython的三种启动方式
- 终端输入jupyter notebook
浏览器中打开, - jupyter qtconsole
qtconsole一共有3种启动方式,详见interactive qtconsole。
不加参数。用matplotlib画的图会调用后台的其他图形化程序打开。
–pylab。默认同1,但是用display函数能让图在qt界面里画上。
–pylab=inline。画的图直接就在qt界面上显示了。 - 终端中的jupyter
-
带有yield 的函数被称为生成器generator,与return的区别是,return返回的是函数的整个结果,而yield只取了一次。在迭代中的效果就是函数先运行完,return了一堆数据,然后在其中迭代一个个的结果;而yield时,比如
for i in date_gen(column):
函数得出一个data时,就给了i,在得出一个data时,再给i,这样data的占用的内存就得到控制。详见:Python yield 使用浅析 ↩