av激情亚洲男人的天堂国语,日韩欧美精品一中文字幕,无码av一区二区三区无码,国产又色又爽又刺激的a片,国产又色又爽又刺激的a片

一日一技:如何從大量商品數(shù)據(jù)里面找到降價(jià)商品?

如下圖所示,是美國(guó)電商沃爾瑪?shù)娜旧唐窋?shù)據(jù):

每個(gè)商品每天都會(huì)爬一次,一共有61w+條數(shù)據(jù)。里面有N個(gè)商品降價(jià)了,現(xiàn)在需要把這些降價(jià)的商品找出來(lái)。

商品有十幾萬(wàn)個(gè),如果你分別找到每個(gè)商品的ID,然后用ID再找到這個(gè)商品每一天的數(shù)據(jù),最后看它是否降價(jià),這個(gè)工作量非常大,速度也會(huì)非常慢。

Pandas內(nèi)部使用了SIMB技術(shù)來(lái)對(duì)并行計(jì)算進(jìn)行優(yōu)化,我們需要盡量在不使用for循環(huán)的情況下,完成這個(gè)任務(wù)。

為了簡(jiǎn)單起見(jiàn),我們假設(shè)降價(jià)就是指今天比昨天的價(jià)格低,不考慮先漲價(jià)再降價(jià)的情況。

要解決這個(gè)問(wèn)題,我們需要使用DataFrame的pct_change()方法。它就像是reduce一樣,給出一系列數(shù)據(jù),它會(huì)計(jì)算數(shù)據(jù)改變量的百分比——第二條相對(duì)于第一條數(shù)據(jù)的改變,第三條數(shù)據(jù)相對(duì)于第二條數(shù)據(jù)的改變,第四條數(shù)據(jù)相對(duì)于第三條數(shù)據(jù)的改變。

首先我們使用date字段對(duì)數(shù)據(jù)進(jìn)行排序,確保價(jià)格是按時(shí)間排列的。然后對(duì)商品的id進(jìn)行分組,這樣就能拿到每一個(gè)商品每天的價(jià)格了。然后對(duì)price字段使用pct_change():

df2['pct'] = df2.sort_values(['date', 'id']).groupby(['id']).price.pct_change()

運(yùn)行效果如下圖所示:

圖中最右側(cè)pct字段是NaN,是因?yàn)檫@是這些商品的第一條數(shù)據(jù),所以始終是NaN.

我們篩選出今天(2022-05-16),pct小于0的商品:

這些就是降價(jià)的商品了。我們可以隨便篩選一個(gè)商品來(lái)檢查一下:

使用pct_change()速度非??欤?0w數(shù)據(jù)幾乎秒出。比f(wàn)or循環(huán)快多了。


標(biāo)題名稱:一日一技:如何從大量商品數(shù)據(jù)里面找到降價(jià)商品?
網(wǎng)頁(yè)地址:http://uogjgqi.cn/article/coesogo.html
掃二維碼與項(xiàng)目經(jīng)理溝通

我們?cè)谖⑿派?4小時(shí)期待你的聲音

解答本文疑問(wèn)/技術(shù)咨詢/運(yùn)營(yíng)咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流