104學習精靈

巨量資料處理與分析

巨量資料處理與分析
關注
邀請朋友
邀請朋友

Line

Facebook

複製連結

取消
關於教室
關注人數 0 人
104人力銀行從職缺中挑選出常見技能所成立的官方教室,提供大家進行共學互動。
學習主持人
持續分享知識,
有機會成為官方教室主持人
關於教室
關注人數 0 人
104人力銀行從職缺中挑選出常見技能所成立的官方教室,提供大家進行共學互動。
學習主持人
持續分享知識,
有機會成為官方教室主持人
Hi~ 歡迎分享學習資源,有學習問題可匿名向Giver發問!
我要分享
我要提問

巨量資料處理與分析 學習推薦

全部
影片
文章
Mike Ku

Learn Code With Mike品牌創辦人

2021/11/24

3個優化Pandas套件讀取大型CSV檔案資料的技巧
本文以Kaggle網站的「Netflix data with IMDB scores added( https://www.kaggle.com/sarahjeeeze/imdbfile )」資料集為例,來和大家分享3個技巧,減少Pandas套件在處理大型資料時的記憶體耗用,以及提升讀取效率。
Q:Pandas如何去除不需要的資料?
在資料分析的過程中,有時並不是所有的CSV檔案欄位都是會使用到的,所以在呼叫Pandas套件的read_csv()方法(Method)時,相對於讀取所有欄位的大量資料,可以設定usecols關鍵字參數,僅讀取會使用到欄位,如下範例:
#所需的欄位
usecols = ['type', 'title', 'director', 'date_added', 'rating']
df = pd.read_csv('mycsvfile.csv', usecols=usecols)
讀取所要的資料欄位後,其中具有遺漏值的資料如果不需要,可以透過Pandas套件的dropna()方法(Method)進行去除,節省後續記憶體處理的資料量,如下範例:
new_df = df.dropna()
當然,dropna()方法(Method)還有以下3個關鍵字參數能夠依據需求來設定去除遺漏值的條件:
1.how:any(只要任一欄位有遺漏值就去除)、all(所有欄位皆有遺漏值就去除)
2.thresh:設定一筆資料有幾個遺漏值就移除
3.subset:設定檢查遺漏值的欄位
Q:Pandas如何精確設定欄位資料型態?
使用Pandas套件的read_csv()方法(Method)讀取CSV檔案資料時,也需要對所讀取的欄位設定精確的資料型態,尤其是數值類型的資料,避免耗用多餘的記憶體資源。
舉例來說,同樣是浮點數的資料,如果能夠視需求設定讀取float32型態,將會比float64型態佔用較少的記憶體資源,這時後就可以搭配Numpy套件來進行設定,安裝指令如下:
$ pip install numpy
而設定Pandas套件的讀取資料型態如下範例:
import pandas as pd
import numpy as np
usecols = ['type', 'title', 'director', 'date_added', 'rating']
df = pd.read_csv('mycsvfile.csv',
usecols=usecols,
dtype={'type':str,
'title':str,
'director':str,
'date_added':str,
'rating':np.float32})
new_df = df.dropna()
Q:Pandas如何切分資料?
相較於一次讀取大量的資料,我們可以將資料依需求或記憶體資源切分為多個區塊(chunk),最後再把處理好的各區塊(chunk)進行合併,如下範例:
#清理區塊中的遺漏值函式
def chunk_cleaning(data_chunk):
cleaned_chunk = data_chunk.dropna()
return cleaned_chunk
#將CSV檔案以1000筆資料切分為一區塊
data_chunks = pd.read_csv('mycsvfile.csv', chunksize=1000)
chunk_list = [] #暫存各區塊的處理結果
for data_chunk in data_chunks:
cleaned_chunk = chunk_cleaning(data_chunk) #清理區塊中的遺漏值
chunk_list.append(cleaned_chunk)
combined_chunk = pd.concat(chunk_list) #將各區塊的結果進行合併
如果想要學習更多的Python應用教學,歡迎前往Learn Code With Mike( https://www.learncodewithmike.com/2021/06/optimize-pandas-speed-and-memory.html )網站觀看更多精彩內容。
2 0 123 2
Mike Ku

Learn Code With Mike品牌創辦人

2021/11/24

4個必學的Pandas套件處理遺漏值資料方法
本文以Kaggle網站的「Netflix data with IMDB scores added( https://www.kaggle.com/sarahjeeeze/imdbfile )」資料集為例,來和大家分享筆者在處理遺漏值(Missing Value)時,常用的Pandas套件方法(Method)。
Q:Pandas如何探索遺漏值(Missing Value)?
如果想要探索每一個欄位資料是否有遺漏值(Missing Value),通常會使用Pandas套件的isnull()方法(Method)來查看,如下範例:
df = pd.read_csv('mycsvfile.csv')
print(df.isnull())
Pandas套件的isnull()方法(Method)會將所有欄位資料內容顯示為布林值(Boolean),只要是遺漏值(Missing Value)就會顯示為True。
但是這樣並沒有辦法讓我們快速瞭解每個欄位的遺漏值(Missing Value)狀況,這時候就可以搭配使用Pandas套件的sum()方法(Method),將每個欄位進行加總,瞭解每個欄位的遺漏值(Missing Value)個數,如下範例:
df = pd.read_csv('mycsvfile.csv')
print(df.isnull().sum())
由於在Python中,True代表1,False代表0,所以利用Pandas套件的isnull()與sum()方法(Method),就能夠知道資料集的每個欄位遺漏值(Missing Value)個數。
Q:Pandas如何檢視遺漏值(Missing Value)?
探索了每個欄位的遺漏值(Missing Value)個數後,如果想要特別檢視特定欄位的遺漏值(Missing Value)資料內容,就可以利用以下的Pandas套件篩選語法:
df = pd.read_csv('mycsvfile.csv')
print(df[df.date_added.isnull()])
以上範例,就是檢視date_added(新增日期)欄位的11筆遺漏值(Missing Value)資料內容。
Q:Pandas dropna()方法(Method)如何使用?
Pandas套件提供了dropna()方法(Method)來因應不同的需求,包含:
1.dropna(how='any'):任一欄位有遺漏值(Missing Value)的資料就移除,如下範例:
df = pd.read_csv('mycsvfile.csv')
print(df.dropna(how='any'))
2.dropna(how='all'):所有欄位皆有遺漏值(Missing Value)的資料就移除,如下範例:
df = pd.read_csv('mycsvfile.csv')
print(df.dropna(how='all'))
3.dropna(subset=['欄位名稱', ...], how='any'):任一個指定的欄位有遺漏值(Missing Value)的資料就移除,如下範例:
df = pd.read_csv('mycsvfile.csv')
print(df.dropna(subset=['director', 'date_added'], how='any'))
4.dropna(subset=['欄位名稱', ...], how='all'):指定的欄位皆有遺漏值(Missing Value)的資料就移除,如下範例:
df = pd.read_csv('mycsvfile.csv')
print(df.dropna(subset=['director', 'date_added'], how='all'))
Q:Pandas fillna()方法(Method)如何使用?
另一個遺漏值(Missing Value)資料的處理方式,就是填入自訂的值,這時候就能利用Pandas套件的fillna()方法(Method),指定value關鍵字參數(Keyword Argument)為想要填入的值即可,如下範例:
df = pd.read_csv('mycsvfile.csv')
df['director'].fillna(value='Not Found', inplace=True)
如果想要學習更多的Python應用教學,歡迎前往Learn Code With Mike( https://www.learncodewithmike.com/2021/07/pandas-handle-missing-value.html )網站觀看更多精彩內容。
2 0 105 2

推薦給你

知識貓星球

喵星人

13小時前

行銷人必備:Dcard Ads AI 教學、優勢一次看!
近年來,隨著數位行銷的崛起,廣告文案的撰寫成為了品牌推廣的關鍵一環。尤其在社群媒體平台上,如何撰寫吸引人的廣告文案,成了廣告操作人員與社群編輯的重要任務。
在這個背景下,Dcard Ads推出了一個創新的工具✦ Dcard Ads AI 文案產生器 ✦,旨在幫助行銷人員更有效地撰寫吸引人的廣告文案,提升廣告效果。
【什麼是Dcard Ads AI 文案產生器?】
Dcard Ads AI 文案產生器是一個運用ChatGPT關鍵字轉文案與擴寫功能的工具。能夠自動化產生廣告文案,提供行銷人員、廣告操作人員與社群編輯更多靈感。除了生成更吸引人的銷售文案,也能夠產出更多個人化的內容,有效吸引目標受眾的注意力。
⟡ 協助適應Dcard獨特廣告環境 ⟡
在Dcard Ads上的廣告撰寫方式對廣告成效有著相當程度的影響。Dcard本身的會員流量主要集中於18-35歲、熱愛吸收新知的年輕族群,而Dcard提供的廣告版位也相當多元。因此,廣告文案是否符合論壇發文風格,以及是否針對年輕使用者設計,變得非常重要。Dcard Ads AI 文案產生器的推出,正是為了協助品牌適應Dcard站上的獨特廣告環境,幫助品牌創建更具吸引力的廣告內容。
⟡ 透過不同切角素材進行 A/B test ⟡
在製作廣告素材時,行銷人員往往無法完美預測市場偏好。因此,建議至少製作2組以上的A/B test素材。透過Dcard Ads AI 文案產生器,可以快速生成多組不同切角的廣告文案,並進行A/B test。這不僅有助於測試市場偏好,還可以為未來的素材優化方向提供依據,提升廣告效果。
【如何使用Dcard Ads AI 文案產生器?】
❶ 點選「AI 文案 (Beta)」,進入AI 文案素材編輯區。
❷ 填入各廣告版位所需標題及內容。
❸ 從下拉選單中選擇想要的切角,按下「產生」即可生成AI 文案組合。
➤ 切角包括Dcard 口吻、切入痛點、突出特點、強調價值、誘發情感、引用社會議題
➤ 當按下「重新產生」時,系統會自動扣除一次可用額度,每組廣告帳號每月提供「30組」AI 文案使用額度
❹ 選擇想要使用的素材,按下「建立素材」即可自動根據AI 文案生成素材。
❺ 在廣告組合中可以查看所有素材平均點擊,並定期針對文案進行優化。
透過Dcard Ads AI 文案產生器,品牌可以更靈活地建立不同切角的廣告文案,根據點擊率定期優化廣告內容,幫助品牌達成更好的廣告成效。
Dcard Ads AI 文案產生器的推出,將為廣告操作人員和行銷人員帶來更多便利和靈感,幫助他們在Dcard平台上創建更具吸引力和個人化的廣告內容,提升廣告效果,實現品牌推廣的目標!
➤ 立即關注【AI趨勢報-科技愛好者的產地】獲得更多科技新知!
1 0 544 1
你可能感興趣的教室