<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          26張圖,帶你全面盤點2021微博熱搜!

          共 10618字,需瀏覽 22分鐘

           ·

          2022-01-20 11:22

          2021是最好的一年,也是很差的一年,時光如白駒過隙,匆匆溜走,還有多少熱點,在你的記憶里!

          這里整理了2021年全年的微博熱搜數(shù)據(jù),你想要的全在這里了!文末有全年熱點排行視頻,不要錯過哦!

          數(shù)據(jù)處理



          最近在網(wǎng)上爬取了2021年全年的微博熱搜數(shù)據(jù),每天都是一個文件


          數(shù)據(jù)比較分散,我們先整理一下

          合并數(shù)據(jù)

          把當前目錄下的 csv 文件數(shù)據(jù)合并成同一個文件

          import?pandas?as?pd
          import?os

          df_list?=?[]
          for?i?in?os.listdir():
          ????if?"csv"?in?i:
          ????????day?=?i.split('.')[0].split('_')[-1]
          ????????df?=?pd.read_csv(i)
          ????????df['day']?=?day
          ????????df_list.append(df)
          df?=?pd.concat(df_list,?axis=0)
          df.to_csv("total.txt",?index=0)

          由于 df 數(shù)據(jù)還是不便于后面的分析使用,接下來我們對 df 進行更進一步的處理操作

          數(shù)據(jù)預處理

          因為抓取數(shù)據(jù)的時候,會有一些重復的數(shù)據(jù),需要去除;同時對于熱搜字段和日期也需要進行一定的處理

          df_new?=?df.copy(deep=True)??#?復制一個新的df

          df_new.drop_duplicates(inplace=True)??#?刪除重復行
          def?deal_day(s):
          ????d?=?s.split('-')[:2]
          ????return?'-'.join(d)
          def?deal_hot(s):
          ????if?'萬'?in?s:
          ????????d?=?s.split('萬')[0]
          ????????return?int(float(d)*10000)
          ????else:
          ????????if?"?"?in?s:
          ????????????d?=?s.split("?")[1]
          ????????????return?int(d)
          ????????else:
          ????????????return?int(s)
          df_new['day_new']?=?df_new['day'].apply(deal_day)
          df_new['熱度']?=?df_new['熱度'].apply(deal_hot)

          處理之后的數(shù)據(jù)如下


          總共有11萬的熱搜數(shù)據(jù)!

          我們拿到這些數(shù)據(jù),其實可以做很多有趣的分析,下面蘿卜哥就拋磚引玉,先做一些簡單的可視化分析

          整體熱搜分析



          可視化部分使用 Pyecharts 進行

          #?數(shù)據(jù)可視化
          import?pyecharts.options?as?opts
          from?pyecharts.charts?import?Line,?Bar,?Pie,?Calendar
          from?pyecharts.charts?import?WordCloud?as?wc
          from?pyecharts.commons.utils?import?JsCode
          from?pyecharts.globals?import?SymbolType
          import?datetime
          import?random

          熱搜日歷

          先來看看微博熱點日歷,這一年,微博運維小哥哥,哪一天最忙呢

          searchcount_value?=?df_new.groupby('day')['熱度'].sum().values.tolist()
          searchcount_index?=?df_new.groupby('day')['熱度'].sum().index.tolist()
          search_data?=?list(zip(searchcount_index,?searchcount_value))

          def?calendar_base(data)?->?Calendar:
          ????background_color_js?=?(
          ????"new?echarts.graphic.LinearGradient(0,?0,?0,?1,?"
          ????"[{offset:?0,?color:?'#c86589'},?{offset:?1,?color:?'#06a7ff'}],?false)"
          )

          ????c?=?(
          ????????Calendar(init_opts=opts.InitOpts(bg_color=JsCode(background_color_js)))
          ????????.add("",?data,?calendar_opts=opts.CalendarOpts(range_="2021",?pos_right="5%",?pos_left="8%"))
          ????????.set_global_opts(
          ????????????title_opts=opts.TitleOpts(title="微博熱搜日歷"),
          ????????????visualmap_opts=opts.VisualMapOpts(
          ????????????????max_=400000000,
          ????????????????min_=0,
          ????????????????orient="horizontal",
          ????????????????is_piecewise=True,
          ????????????????pos_top="230px",
          ????????????????pos_left="100px",
          ????????????),
          ????????)
          ????)
          ????return?c
          calendar_base(search_data).render_notebook()

          Output:


          可以看到,7月末,8月初是熱搜最為密集的時期,畢竟是奧運會期間嘛。然后總體來看,上半年要比下半年熱搜更多,看來開年是各種熱門事件的集中爆發(fā)時間啊

          而熱搜最高的就是2021-07-29這一天,我們來單獨看看這一天的情況

          熱搜總量最高

          df_07_29?=?df_new[df_new['day']?==?'2021-07-29']
          df_07_29?=?df_07_29.sort_values(by='熱度',?ascending=False)

          def?bar_chart(x,?y)?->?Bar:
          ????background_color_js?=?(
          ????????"new?echarts.graphic.LinearGradient(0,?0,?0,?1,?"
          ????????"[{offset:?0,?color:?'#c86589'},?{offset:?1,?color:?'#06a7ff'}],?false)"
          ????)
          ????c?=?(
          ????????Bar(init_opts=opts.InitOpts(bg_color=JsCode(background_color_js)))
          ????????#Bar()
          ????????.add_xaxis(x)
          ????????#?.add_xaxis(searchcount.index.tolist()[:10])
          ????????.reversal_axis()
          ????????.add_yaxis("",?y,?
          ???????????????????label_opts=opts.LabelOpts(position='inside',?formatter="{b}?{c}"),
          ??????????????????color='plum',
          ??????????????????)
          ????????.set_global_opts(xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(rotate=-30,),
          ?????????????????????????????????????????????????axisline_opts=opts.AxisLineOpts(is_show=False),),
          ????????????????????????yaxis_opts=opts.AxisOpts(
          ????????????????????????????axislabel_opts=opts.LabelOpts(is_show=False,),
          ????????????????????????axisline_opts=opts.AxisLineOpts(is_show=False),
          ????????????????????????axistick_opts=opts.AxisTickOpts(
          ????????????????????????is_show=False,
          ????????????????????????length=25,
          ????????????????????????linestyle_opts=opts.LineStyleOpts(color="#ffffff1f"),
          ????????????????????),)
          ????????????????????????)
          ????????.set_series_opts(
          ????????????itemstyle_opts={
          ????????????"normal":?{
          ????????????????"color":?JsCode("""new?echarts.graphic.LinearGradient(0,?0,?0,?1,?[{
          ????????????????????offset:?0,
          ????????????????????color:?'rgba(255,100,97,.5)'
          ????????????????},?{
          ????????????????????offset:?1,
          ????????????????????color:?'rgba(221,160,221)'
          ????????????????}],?false)"""
          ),
          ????????????????"barBorderRadius":?[30,?30,?30,?30],
          ????????????????"shadowColor":?'rgb(0,?160,?221)',
          ????????????}}
          ????????)
          ????)
          ????return?c
          bar_chart(df_07_29['標題'].values.tolist()[:10],?df_07_29['熱度'].values.tolist()[:10]).render_notebook()

          Output:


          這一天的高量熱搜基本被奧運會相關的話題占據(jù)了,而乒乓球又是熱搜中的熱搜

          我們再通過一個詞云圖來看看這一天出現(xiàn)的詞匯情況

          import?jieba
          from?wordcloud?import?WordCloud
          from?PIL?import?Image
          import?numpy?as?np

          weibo_title?=?df_new['標題'].values.tolist()
          font?=?r'C:\Windows\Fonts\FZSTK.TTF'
          STOPWORDS?=?{"被",?"@",?"我",?"她",?"你",?"他",?"了",?"的",?"吧",?"嗎",?"在",?"啊",?"不",?"也",?"還",?"是",
          ?????????????"說",?"都",?"就",?"沒",?"做",?"人",?"被",?"不是",?"現(xiàn)在",?"什么",?"這",?"呢",?"知道",?"鄧",?"我們",?"他們",?"和",?"有",?"",?"",
          ????????????"要",?"就是",?"但是",?"而",?"為",?"自己",?"中",?"問題",?"一個",?"沒有",?"到",?"這個",?"并",?"對"}

          #?STOPWORDS?=?{}

          def?wordcloud(data,?name,?pic=None):
          ????comment?=?jieba.cut(str(data),?cut_all=False)
          ????words?=?'?'.join(comment)
          ????img?=?Image.open(pic)
          ????img_array?=?np.array(img)
          ????wc?=?WordCloud(width=2000,?height=1800,?background_color='white',?font_path=font,?mask=img_array,
          ???????????????????stopwords=STOPWORDS,?contour_width=3,?contour_color='steelblue')
          ????wc.generate(words)
          ????wc.to_file(name?+?'.png')
          wordcloud(weibo_title,?'0729',?"1.PNG")

          Output:


          全年熱點排行

          我們再來看看2021全年熱搜的排行榜

          Top10

          bar_chart(df_new_sort['標題'].values.tolist()[:10],?df_new_sort['熱度'].values.tolist()[:10]).render_notebook()

          Output:


          可以看到,趙英俊的意外離世還是引起了很大的波動,而趙麗穎馮紹峰的離婚也是賺足了吃瓜群眾的眼球

          Top20

          我們把榜單延長至 top20,來看看還有哪些熱點被廣大網(wǎng)友關注呢

          bar_chart(df_new_sort['標題'].values.tolist()[11:20],?df_new_sort['熱度'].values.tolist()[11:20]).render_notebook()

          Output:


          每月最高熱搜

          我們還是通過時間線圖的方式來展示每個月最高熱搜情況

          month?=?['2021-01',?'2021-02',?'2021-03',?'2021-04',?'2021-05',?'2021-06',?
          ?????????'2021-07',?'2021-08',?'2021-09',?'2021-10',?'2021-11',?'2021-12']
          result_dict?=?{}
          for?i?in?month:
          ????dd?=?df_new[df_new['day_new']?==?i]
          ????dd?=?dd.sort_values(by='熱度',?ascending=False)
          ????dd_list?=?dd.iloc[0].values.tolist()
          ????result_dict[dd_list[-1]]?=?dd_list[0]?+?','?+?str(dd_list[1])

          df_2021?=?pd.DataFrame.from_dict(result_dict,?orient='index',columns=['標題'])
          df_2021?=?df_2021.reset_index().rename(columns?=?{'index':'day_new'})

          y?=?gen_y(df_2021)
          myLine(y).render_notebook()

          Output:


          可以看出,微博的吃瓜群眾們,關心的事情還真的是多姿多彩,既有家國大事,也有娛樂八卦;既有游戲體育,也有生活民生。可謂一個全方位吃瓜~

          全年熱搜之王



          下面我們把熱搜標題進行細分,從不同的詞匯上來探索下這一年的熱搜情況

          首先進行 jieba 分詞處理,并提取出人名、名詞和動詞三類

          import?jieba.posseg?as?psg
          name_list?=?[]
          noun_list?=?[]
          verb_list?=?[]
          for?i?in?weibo_title:
          ????result?=?psg.cut(i)
          ????for?x?in?result:
          ????????if?x.flag?==?'nr':
          ????????????name_list.append(x.word)
          ????????elif?x.flag?==?'n':
          ????????????noun_list.append(x.word)
          ????????elif?x.flag?==?'v':
          ????????????verb_list.append(x.word)

          熱搜之王-人物

          我們先來統(tǒng)計人物的熱搜情況

          #?熱搜之王-人物
          name_counts?=?{}
          stopword?=?['陳',?'李',?'楊',?'王',?'郭',?'吳',?'周',?'明星',?'辟謠',?'石家莊',?'阿富汗',?'晉級',?'官宣']
          for?w?in?name_list:
          ????if?w?not?in?stopword:
          ????????name_counts[w]?=?name_counts.get(w,?0)?+?1
          sort_counts?=?sorted(name_counts.items(),?key=lambda?item:?item[1],?reverse=True)

          bar_total([x[0]?for?x?in?sort_counts[:20]],?[x[1]?for?x?in?sort_counts[:20]],?"熱點人物").render_notebook()

          Output:


          可以看到王一博成為了全年上熱搜最多的那個人,強!而那個以一己之力重新定義牙簽的男人也在熱搜榜單

          下面我們就來分別看下他們的熱搜具體情況

          熱搜-王一博

          wangyibo?=??df_new[df_new['標題'].str.contains('王一博')].sort_values(by='熱度',?ascending=False)
          bar_chart(wangyibo['標題'].values.tolist()[:10],?wangyibo['熱度'].values.tolist()[:10]).render_notebook()

          Output:


          嗯,不做評論了,畢竟不是很熟悉~

          熱搜-吳簽

          wuyifan?=??df_new[df_new['標題'].str.contains('吳亦凡')].sort_values(by='熱度',?ascending=False)
          bar_chart(wuyifan['標題'].values.tolist()[:10],?wuyifan['熱度'].values.tolist()[:10]).render_notebook()

          Output:


          哈哈哈,這對于簽哥來說應該是冰火兩重天的一年,前面好好的上熱搜,走流量,后面突然就涼了,也不知道現(xiàn)在是啥情況了~

          人物-詞云

          再通過詞云的方式來整體看下全年的熱搜名人榜

          #?熱點之王詞云
          def?wordcloud_base(words)?->?wc:
          ????background_color_js?=?(
          ????????"new?echarts.graphic.LinearGradient(0,?0,?0,?1,?"
          ????????"[{offset:?0,?color:?'#c86589'},?{offset:?1,?color:?'#06a7ff'}],?false)"
          ????)

          ????c?=?(
          ????????wc(init_opts=opts.InitOpts(bg_color=JsCode(background_color_js)))
          ????????.add("",?words,?word_size_range=[20,?100],?shape="star")
          ????????.set_global_opts(title_opts=opts.TitleOpts(title=""))
          ????)
          ????return?c

          wordcloud_base(zip([x[0]?for?x?in?sort_counts[:100]],?[x[1]?for?x?in?sort_counts[:100]])).render_notebook()

          Output:


          熱搜之王-名詞

          bar_total([x[0]?for?x?in?sort_noun[:20]],?[x[1]?for?x?in?sort_noun[:20]],?"熱門名詞").render_notebook()

          Output:


          出乎意料,2021年熱搜名詞最高的竟然是“男子”這個詞匯,要知道,我以前也分析過2019年的熱搜,當時的最高詞匯可是“女生”

          玫瑰餅圖


          下面我們就來探究下,到底“男子”這個詞匯為什么出現(xiàn)頻率這么高

          男子與女子

          #?男子和女子
          nanzi?=?df_new[df_new['標題'].str.contains('男子')].sort_values(by='熱度',?ascending=False)
          nvzi?=?df_new[df_new['標題'].str.contains('女子')].sort_values(by='熱度',?ascending=False)

          bar_chart(nanzi['標題'].values.tolist()[:20],?nanzi['熱度'].values.tolist()[:20]).render_notebook()

          bar_chart(nvzi['標題'].values.tolist()[:20],?nvzi['熱度'].values.tolist()[:20]).render_notebook()

          Output:



          原來2021年是奧運年,各種男女子項目都紛紛進入熱搜了~

          名詞-詞云

          wordcloud_base(zip([x[0]?for?x?in?sort_noun[:100]],?[x[1]?for?x?in?sort_noun[:100]])).render_notebook()

          Output:


          可以看到,新冠,疫苗,病例,本土等和疫情相關的詞匯依然是2021年的熱點詞匯,只能說疫情還未結束,我們仍需努力!

          熱搜之王-動詞

          最后來看下熱門的動詞情況

          #?熱門動詞
          bar_total([x[0]?for?x?in?sort_verb[:20]],?[x[1]?for?x?in?sort_verb[:20]],?"熱門動詞").render_notebook()

          Output:


          不出意外,“回應”仍然是微博的最熱動詞,這很“微博”

          回應啥

          我們來看看熱度最高的幾個回應都是啥

          huiying?=?df_new[df_new['標題'].str.contains('回應')].sort_values(by='熱度',?ascending=False)
          bar_chart(huiying['標題'].values.tolist()[:20],?huiying['熱度'].values.tolist()[:20]).render_notebook()

          Output:


          基本都是娛樂圈的那些事,回應有時候代表一種態(tài)度,可能是直面責難,勇于承擔;也可能是據(jù)理力爭,不懼輿論

          其他熱門動詞

          否認

          否認就是正面硬剛了,我沒有,我不是,我不知道,否認三連搞起來

          fouren?=?df_new[df_new['標題'].str.contains('否認')].sort_values(by='熱度',?ascending=False)
          bar_chart(fouren['標題'].values.tolist()[:20],?fouren['熱度'].values.tolist()[:20]).render_notebook()

          Output:

          道歉

          當然還有心真道歉的,痛徹心扉的文字,聲淚俱下的表述,讓你沒辦法硬起心腸,沒辦法不選擇原諒

          daoqian?=?df_new[df_new['標題'].str.contains('道歉')].sort_values(by='熱度',?ascending=False)
          bar_chart(daoqian['標題'].values.tolist()[:20],?daoqian['熱度'].values.tolist()[:20]).render_notebook()

          Output:

          離婚&分手

          fenli?=?df_new[df_new['標題'].str.contains('離婚|分手')].sort_values(by='熱度',?ascending=False)
          bar_chart(fenli['標題'].values.tolist()[:20],?fenli['熱度'].values.tolist()[:20]).render_notebook()

          Output:


          趙麗穎和馮紹峰的離婚絕對屬于年度大瓜了~

          動詞-詞云

          wordcloud_base(zip([x[0]?for?x?in?sort_verb[:100]],?[x[1]?for?x?in?sort_verb[:100]])).render_notebook()

          Output:


          全年熱搜視頻



          熟悉我的小伙伴應該知道,寫這類文章,最后我一般都會制作一個動態(tài)條形視頻,這次也不例外,2021全年,每個熱點事件動態(tài)展示視頻



          好了,以上就是今天分享的所有內容,如果對你有幫助,幫忙點贊在看支持哦~

          完整的微博熱搜數(shù)據(jù)獲取代碼,公眾號:jackcui-ai,后臺回復「微博,即可獲取!

          ·················END·················

          推薦閱讀

          ?? ?馬賽克,克星,真來了!?? ?領證啦!????又整新活,AI 殺麻了!

          瀏覽 228
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  四虎性爱网站 | 青娱乐在线观看人人 | 国产精品无码在线看 | 国产午夜成人电影 | 翔田千里无码 |