1. Html網頁結構介紹-網頁到底如何傳送資料?爬蟲必學
2. 資料傳遞:Get與Post差異,網路封包傳送的差異
3. Html爬蟲Get教學-抓下Yahoo股票資訊,程式交易的第一步
4. Html爬蟲Get實戰-全台最大美食平台FoodPanda爬蟲,把熊貓抓回家
5. 資料分析實戰,熊貓FoodPanda熱門美食系列|看出地區最火料理種類
6. Json爬蟲教學-Google趨勢搜尋|掌握最火關鍵字
7. Json爬蟲實戰-24小時電商PChome爬蟲|雖然我不是個數學家但這聽起來很不錯吧
8. Html爬蟲Post教學-台灣股市資訊|網韭菜們的救星
9. Html爬蟲Post實戰-全球美食平台UberEat爬蟲
10. Pandas爬蟲教學-Yahoo股市爬蟲|不想再盯盤
11. Pandas爬蟲實戰-爬下全台各地區氣象預報歷史資料
12. 資料分析實戰-天氣預報圖像化|一張圖巧妙躲過雨季
å¨çæ¤ç¯ä¹åï¼è¦å çåé¢èª²ç¨åï¼Youtubeç¬è²ï¼é »éè³æï½Youtuberç¶²ç´ æ代ä¸å¯æ缺çPythonæè½ãéç¨å¼ç¢¼ã
å©ç¨æ¯åYoutuberç總è¨é±æ¸ï¼è總è§çæ¸ï¼ä¸éèç·çºå¹³åå¼ï¼ï¼å¯ä»¥åååºä»¥ä¸åå¡ï¼
ç±ä»¥ä¸ååååï¼åè¨æ¨æ¯æ£å¨å°æ¾Youtuberåä½çåçï¼æ¨æé¸æåªåååçYoutuberå¢ï¼å¾å¤äººå¯è½æç´è§æ§çé¸æ總è¨é±é«ç¸½è§çé«ï¼ä½é樣åä½è²»ç¨è¯å®ä¸æï¼å¯ä»¥è©¦è©¦çæå總è¨é±ä½ç¸½è§çé«çYoutuberé²è¡æ´½è«ï¼ä¸æ¹é¢éå¸¸å ±å¹æèè¨é±æ¸ææ£æ¯ï¼å æ¤è¨é±è¼ä½ç¸å°å ±å¹è¼ä¾¿å®ãå¦ä¸æ¹é¢è§ç總æ¸ä»£è¡¨è©²Youtuberå¨ä¸å層é¢ç觸æææè¼å¼·ï¼è¼è½å¤ æå°éå溫層çè§ç¾ã
å樣çXY軸ï¼ææ45度ç·çæ¹å¼ï¼å¯ä»¥æ以ä¸å¹¾ç¨®è§£æï¼
è¥æ¨æ¬èº«æ¯ç¶çYoutuberï¼å©ç¨45度ç·æé·åæè½å¤ å¿«éä¸æ¸æåç決å®åççç®æ¨æ¹åï¼ä¸åå¥åº·çä½ç½®æ該è¦ä½æ¼45度ç·ä¸ï¼ä»£è¡¨è¨é±æ¸éèè§çæ¸éé½æ¯åæ£æ¯çï¼è¥å¤±è¡¡ç話å代表è§ç¾ä¸é¡è¨é±æè è¨é±è ä¸è§çï¼å°æ¼Youtubeé »éåç端ä¾èªªé½ä¸æ¯å¥½äºæ ã
å¨ç¹ªååæ主è¦çå·¥ä½å°±æ¯è³æèçãå¨é次çæå¸ä¸ï¼èçç®æ¯ç¸å°å®ç´çï¼åªéè¦å°æéé²è¡æç®ï¼ä¸¦ä¸å°ç¸½è§çæ¸è總è¨é±æ¸çå®ä½èª¿æ´å¥½å³å¯ã
# åå¾è³æ
getdata = pd.read_csv('Youtuber_é »éè³æ.csv', encoding = 'utf-8-sig')
getdata.columns
# èçç¶çæéæ¬ä½
getdata['éå§ç¶çæé'] = pd.to_datetime(getdata['éå§ç¶çæé'])
getdata['ç¶ç天æ¸'] = (today - getdata['éå§ç¶çæé']).astype(str)
getdata['ç¶ç天æ¸'] = getdata['ç¶ç天æ¸'].str.replace('days.*', #æ³å代çæ±è¥¿
'', #å代æçæ±è¥¿
regex = True)
getdata['ç¶ç天æ¸'] = getdata['ç¶ç天æ¸'].astype(int)
# èç總è§çæ¸æ¬ä½
getdata['總è§çæ¸'] = getdata['總è§çæ¸']/10000
# èç總è¨é±æ¸æ¬ä½
getdata['總è¨é±æ¸'] = getdata['總è¨é±æ¸'].str.replace('è¬', #æ³å代çæ±è¥¿
'', #å代æçæ±è¥¿
)
getdata['總è¨é±æ¸'] = getdata['總è¨é±æ¸'].astype(float)
ç±æ¼æåæ³è¦åç¾çå象éåæè¦ç¨é¡è²åçºåéï¼ä»¥æ¹ä¾¿é±è®ï¼å æ¤æ¯åYoutuberååé¡å¾é½è¦è¨å®ä¸åçé¡è²ï¼å æ¤ç¹ªåæéè¦ä½¿ç¨for è¿´åï¼æ¯åYoutuberé²å»è¨å®é¡è²ã
#é²è¡è³æåæï¼å象éåæ
plt.figure(figsize=(20,10))
colorlist = []
for tx,ty,ab in zip(getdata['總è¨é±æ¸'],getdata['總è§çæ¸'], getdata['Youtuberé »éå稱']):
Aavg = getdata['總è¨é±æ¸'].mean()
Bavg = getdata['總è§çæ¸'].mean()
if (tx < Aavg) & (ty < Bavg):#第ä¸è±¡é
colorlist.append('#abc4d8')
elif (tx > Aavg) & (ty < Bavg):
colorlist.append('#abd8bf')
elif (tx < Aavg) & (ty > Bavg):
colorlist.append('#d8bfab')
else:
colorlist.append('#d8abc4')
plt.text(tx,ty,ab, fontsize=15)# å ä¸æå註解
# 繪製åé»
plt.scatter(getdata['總è¨é±æ¸'],getdata['總è§çæ¸'],
color= colorlist,
s=getdata['ç¶ç天æ¸'],
alpha=0.5)
plt.axvline(getdata['總è¨é±æ¸'].mean(), color='c', linestyle='dashed', linewidth=1) # 繪製平åç·
plt.axhline(getdata['總è§çæ¸'].mean(), color='c', linestyle='dashed', linewidth=1) # 繪製平åç·
plt.title("KOLåæ",fontsize=30)#æ¨é¡
plt.ylabel('總è§çæ¸',fontsize=20)#yçæ¨é¡
plt.xlabel('總è¨é±æ¸',fontsize=20) #xçæ¨é¡
plt.tight_layout()
èå象éåæåå¯ä¸ä¸åçæ¯ï¼æ£æ¯åæåå°XYçå¹³åç·ï¼ææ45度ç·ï¼å æ¤å ¶é¤çç¨å¼ç¢¼é½æ¯ä¸æ¨£çã
#é²è¡è³æåæï¼æ£æ¯åæ
plt.figure(figsize=(20,10))
colorlist = []
for tx,ty,ab in zip(getdata['總è¨é±æ¸'],getdata['總è§çæ¸'], getdata['Youtuberé »éå稱']):
Aavg = getdata['總è¨é±æ¸'].mean()
Bavg = getdata['總è§çæ¸'].mean()
if (tx < Aavg) & (ty < Bavg):#第ä¸è±¡é
colorlist.append('#abc4d8')
elif (tx > Aavg) & (ty < Bavg):
colorlist.append('#abd8bf')
elif (tx < Aavg) & (ty > Bavg):
colorlist.append('#d8bfab')
else:
colorlist.append('#d8abc4')
plt.text(tx,ty,ab, fontsize=15)# å ä¸æå註解
# 繪製åé»
plt.scatter(getdata['總è¨é±æ¸'],getdata['總è§çæ¸'],
color= colorlist,
s=getdata['ç¶ç天æ¸'],
alpha=0.5)
plt.plot([0, 400], [0, 80000] ,
color='c',
linestyle='dashed',
linewidth=1
)
plt.title("KOLåæ",fontsize=30)#æ¨é¡
plt.ylabel('總è§çæ¸',fontsize=20)#yçæ¨é¡
plt.xlabel('總è¨é±æ¸',fontsize=20) #xçæ¨é¡
plt.tight_layout()
作者:楊超霆 行銷搬進大程式 創辦人