Python實(shí)戰(zhàn)計(jì)劃——第三周第三節(jié):使用find函數(shù)精確查找數(shù)據(jù)

視頻重點(diǎn)

練習(xí)代碼

擴(kuò)展

1. 視頻重點(diǎn)

  1. from datetime imort timedelta,date處理日期。第一步:統(tǒng)一日期格式。第二步:轉(zhuǎn)換數(shù)據(jù)。
for i in item_info.find():
    frags = i['pub_date'].split('-')
    if len(frags) == 1:
        date = frags[0]
    else:
        date = '{}.{}.{}'.format(frags[0],frags[1],frags[2])
    item_info.update_one({'_id':i['_id']},{'$set':{'pub_date':date}})
  1. 用兩個for循環(huán)來實(shí)現(xiàn)每一x坐標(biāo)上的y軸數(shù)據(jù)
def get_data_within(date1,date2,areas):
    for area in areas: #每一地區(qū)下(對應(yīng)不同折線)
        area_day_posts = []
        for date in get_all_dates(date1,date2):#x軸的數(shù)據(jù),兩個日期間的每一個日期
            a = list(item_info.find({'pub_date':date,'area':area}))#將兩個for迭代出的數(shù)據(jù),作為find參數(shù),找到數(shù)據(jù)
            each_day_post = len(a)#統(tǒng)計(jì)數(shù)據(jù)個數(shù),即y軸發(fā)帖量
            area_day_posts.append(each_day_post)
        data = {
            'name': area,
            'data': area_day_posts,#與上次的柱狀體不同,是描述name的一組數(shù)據(jù)
            'type': 'line'
        }
        yield data
  1. charts圖表中折線圖,option的含義
    charts.plot(series, options=options,show='inline')options時plot方法的參數(shù)之一,定義
options = {
    'chart'   : {'zoomType':'xy'},
    'title'   : {'text': '發(fā)帖量統(tǒng)計(jì)'},
    'subtitle': {'text': '可視化統(tǒng)計(jì)圖表'},
    'xAxis'   : {'categories': [i for i in get_all_dates('2015.12.24','2016.01.05')]},
    'yAxis'   : {'title': {'text': '數(shù)量'}}
    }

作為plot方法的傳遞參數(shù)

2. 練習(xí)代碼

3-3homework.jpg

3. 擴(kuò)展

find函數(shù)的用法
操作符$in和$slice
timedelta函數(shù)
find參數(shù)1,找誰,參數(shù)2,返回什么數(shù)據(jù),用0和1來控制不顯示跟顯示
不會更改原來的數(shù)據(jù)結(jié)構(gòu)
條件操作符$in 分片$slice

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容