2025年3月30日 星期日

有Ai的協助,自學python 需達到的程度

在有ai的情況下,學習python 需達到的程度,比我想的多了些,不過要能看懂及修改的確是需要具備。



很好的問題!以你結合 AI 製作投資 YouTube 影片的目標來看,其實不需要學習到非常進階的程式設計程度,但要掌握以下幾個關鍵層級:


【你該掌握的 Python 能力範圍】

一、基礎語法(1~2 週)

  • 變數、資料型別(list, dict, tuple)
  • 條件判斷、迴圈、函式定義
  • 錯誤處理(try/except)

目標:能看懂簡單 Python 程式,修改別人的腳本


二、資料處理與分析(1~2 個月)

  • Pandas:讀取 CSV、篩選欄位、資料清理、群組統計
  • NumPy:簡單數學運算(不一定必學,但常搭配 Pandas)
  • Matplotlib / Plotly:製作折線圖、K 線圖、配息趨勢圖

目標:能自動化投資數據分析、生成圖表(如抓 ETF 歷史報酬、個股本益比變化)


三、抓取資料與自動化(1~2 個月)

  • Requests / BeautifulSoup:網路爬蟲,抓 Yahoo Finance、CMoney 等網站的股價/財報
  • OpenAI API / Hugging Face Transformers(若需用 AI)
    • 呼叫 ChatGPT API,生成腳本、自動摘要財報、新聞整理

目標:用程式自動抓資料、簡單應用 AI 工具,減少你手動處理的時間


四、進階選修(未必要學,但可加分)

  • Streamlit / Gradio:快速把 Python 分析做成互動網站(展示投資模型)
  • LangChain / Agent 工具:建構 AI 助理(進階應用)
  • Selenium / Playwright:模擬點選登入、擷取資料(進階爬蟲)

【你可採取的學習方式】

1. 專案導向學習

  • 舉例:「用 Python 製作一份每月配息股 Top10 排行榜」
  • 比較容易吸收,且能與影片腳本或圖表製作整合

2. 搭配 AI 協助學習

  • 問我:「這段程式碼的意思是什麼?」「能幫我改成顯示殖利率前10名股票嗎?」

【總結】

只要學到「資料處理 + 圖表繪製 + 自動化爬資料」這三塊,你就已經可以打造一個 AI + 投資資料驅動的頻道了


Gpt提供的學習清單


以下是依照個人工作技能等相關領域,詢問gpt得到的學習清單,雖然有些建議是之前就想過的內容,但gpt給予階段性的建議,至於執行程度會與空閒時間有關,還沒退休時學習新事物,可能會跟工作上被要求學習的內容有衝突,但仍然先收下參考。



太好了!你結合「會計+稽核+投資+自動化工具」的背景,再加入 AI 與內容創作,未來打造個人投資品牌 YouTube 頻道會非常有潛力。

以下是為你規劃的2~3 年學習路線圖,分為「技能基礎」、「內容創作」、「AI應用」三大方向。


【第 1 階段】打底期(0-6 個月)

目標:強化資料呈現能力,開始製作試驗內容

技能學習

  1. 進階 Power BI
    • DAX 語法、模型設計
    • 投資分析報表(如殖利率比較、ETF 組合績效)
  2. 簡報與說故事技巧
    • 學習如何把數據講成故事(推薦:《Storytelling with Data》)
  3. 影音剪輯工具入門
    • CapCutDaVinci Resolve(免費也夠用)
    • 學會剪片、加字幕、配音

小任務

  • 開始製作投資觀念簡報(如「股息成長股 vs 高殖利率股」)
  • 練習用 Power BI 呈現簡單投資分析,搭配簡報說明
  • 看 5 個投資型 YouTuber 學他們的腳本架構與講法

【第 2 階段】加速期(6~12 個月)

目標:進入AI輔助製作、產出簡單影片、建立觀眾輪廓

技能學習

  1. ChatGPT / AI 文字工具應用
    • 寫影片腳本、標題、影片描述、SEO 標籤
  2. AI 圖像 / 簡報製作
    • 使用 Canva、Gamma 或 Microsoft Designer 製作吸睛封面與簡報
  3. AI 語音工具
    • ElevenLabs、Voice AI:可用 AI 語音配音節省錄音時間

小任務

  • 發佈第一支 YouTube Shorts 或簡短解說影片
  • 用 ChatGPT + Power BI 組合製作一個「每月投資觀點分享」
  • 測試不同主題吸引力(如財報解讀、ETF比較、投資心法)

【第 3 階段】深化與品牌建立期(1~2 年)

目標:穩定產出影片內容,打造個人品牌與社群

技能深化

  1. 腳本設計與節目架構
    • 建立固定欄位(如:本週ETF觀察、投資書摘、資產配置術)
  2. YouTube 成長策略
    • 了解演算法、觀眾維度(CTR、觀看時長)
    • 學會使用 YouTube Analytics 分析成效
  3. 建立社群與變現模式
    • 經營 IG / FB / Line 社群
    • 發展數位商品(如投資模版、電子書、課程)

【第 4 階段】延伸與擴張期(2~3 年)

目標:內容商業化,打造個人品牌與收入來源

可以發展方向:

  • 線上課程:入門投資、財報閱讀、用 Power BI 看懂股票
  • 專屬社群/訂閱服務:付費社團、月度資產配置分享
  • 企業合作或顧問案:投資品牌合作、報表顧問等


記錄我的AI進化之路:從初次付費版開始

 

3/12正式將GPT升級為付費版本,主要是因為工作上許多專業內容需要AI快速且大量的初步資料整理。經過半個月的實際使用,感覺付費版本確實相當划算,不僅速度更快,回答的精確度與實用性也明顯提高,帶來了更高的工作效率。

原本還考慮要不要同時訂閱另一家AI工具,不過現階段各家AI仍有提供一定程度的免費使用額度,以目前的需求而言,一個付費版配合其他免費工具,已經綽綽有餘。或許未來當我工作中更深度地融入AI協作時,會再考慮訂閱第二個付費AI服務。

目前在這裡特別記錄一下半個月以來使用AI的心得,未來再回頭檢視AI工具對我的工作效率、決策品質,以及整體生活帶來了哪些影響。

2025年1月12日 星期日

清洗儲熱桶熱水器

1/4,我自行拆下儲熱桶的電熱棒,清理內部並排除其中的泥沙。上一次清理是在2017/12/31(事隔7年),當時請維修人員檢查熱水器不熱的原因,順便清理了儲熱桶內的泥沙和結晶。當時我觀察工人拆裝的方式,發現操作相當簡單,因此這次決定自己動手處理。拆下後發現泥沙比想像中少,讓我不禁懷疑岳母當初購買的儲熱桶是否為二手品(才隔6年),因為之前清理時內部相當髒亂。


這次自行拆裝還有另一個原因,是想確認是否因泥沙堆積導致漏水。後來發現問題其實是水管接頭未鎖緊所致。經過這次經驗,未來若再次發生漏水問題,我會先仔細檢查並確認原因,避免浪費時間處理不相關的部分。同時,這次的操作也讓我再次確認拆裝並不困難。此外,電熱棒似乎已接近需要更換的狀態,下一次處理時,應該能更快速完成。


注意事項:斷水、斷電

使用工具:WD40((除鏽)、鉗子、一字起子(止水)、十字起子



使用工具


斷水

底部可以簡單放水清潔

電熱棒接法







電熱棒4KW



電熱棒長度





儲熱桶內排空清潔







漏水的地方

乾掉後的泥沙(大約1小碗)









更換紗窗

 

今年第一次挑戰自己動手更換紗窗。回想兩年前,曾經請人更換3樓的紗窗,當時花費約1500-2000元左右。這次因為老婆大人在IG上看到有人到小北百貨買DIY工具自行更換紗窗,便提議我試試看,於是我也決定親自動手操作。


這次總共更換了頂樓曬衣場的3個紗窗。1月5日先更換了第一片,花費約1小時完成。到了1月11日,再接著更換另外兩片,經驗累積後,速度進步到每片約30分鐘。


第一片紗窗更換時,使用的是4.5mm壓條。本來剪了一小段舊壓條到賣場比對,但可能因舊壓條已經受擠壓縮小,導致尺寸判斷錯誤。當時滾紗窗的過程非常順利,但裝好後感覺紗窗稍微鬆動,似乎不夠緊實。後來,為了更穩固,我另外購入了5.5mm壓條。這次壓條非常緊實,甚至因為滾壓力度過大,還把紗窗滾到有些缺角。不過,相較於第一片,後來的兩片更換得更加牢固,整體完成度也提升許多。


這次DIY的過程,雖然一開始有些手忙腳亂,但在經驗中學習,越做越熟練,最終也完成了一項看似不容易的挑戰!



工具:剪刀、美工刀、一字起子(可以不用)、滾輪(小北)、4.5nm壓條(小北)、5.5nm壓條(小北)、長尾夾(固定邊框)

紗窗:防霾紗窗(小北)







更換工具

換好的紗窗

裝上後

防霾紗窗

防霾紗窗






更換浴室通風扇

 

上週(1/2),小孩浴室的通風扇壞了,讓我聯想到之前主臥的通風扇也曾壞掉並更換過。因為有過一次經驗,這次更換速度比上次(2021/11)快了許多,也更加熟練。


在挑選過程中,我查了一些其他品牌,但最後還是選擇了建商原本使用的品牌,猜想價格會比較實惠。第一次購買時印象中約花了1000元,而這次在蝦皮一次買了兩台,平均每台約850元。以主臥更換後使用10年的壽命來看,這樣的價格相當划算。


舊的通風扇拆下後,我簡單清理了一下,打算試試用潤滑油處理,看看是否能解決問題,或許還能繼續使用,延長它的使用壽命。


  • 品牌(KNS康乃馨 ES-100)
  • 使用工具電動起子(十字、一字),一字用在電線接頭(舊的接法鬆開)




更換前內部已經有點髒


 

更換前先確認接的方式


更換後


2024年6月8日 星期六

用GPT修改M語法_以日期列處理

在2023年GPT開始使用時我就詢問過GPT,可能當時的GPT還不夠聰明,給予的答案無法運行,我認為原始的語法應該可以更聰明點,詢問過Power BI社群的人,但沒有人提供答案,終於在現在再度詢問GPT給予的答案與我思考的方向依樣,只是我懂得語法不多,透過GPT幫忙解答,我也學到了新知識。





下面是GPT提供目前最優的版本

let

    // 定义日期和参数

    起始日期 = "2023/12/29",

    最新日期 = "2024/6/7",

    周前日期 = "2024/5/31",

    日期列表 = {"2023/12/29", "2024/5/10", "2024/5/17", "2024/5/24", "2024/5/31", "2024/6/7"},

    趴數 = 0.05, // 例如5%

 

    // 数据处理

    來源 = Table.NestedJoin(投資組合, {"持股標的"}, 資料_5, {"標的"}, "資料_5", JoinKind.RightOuter),

    已展開資料 = Table.ExpandTableColumn(來源, "資料_5", List.Combine({{"標的"}, 日期列表})),

    已排序資料列 = Table.Sort(已展開資料, {{"持股標的", Order.Descending}}),

    已移除資料行 = Table.RemoveColumns(已排序資料列, {"持股標的"}),

    加入淨值 = Table.AddColumn(已移除資料行, "淨值", each [股數] * [匯率] * Record.Field(_, 最新日期)),

    Base_淨值總額 = List.Sum(加入淨值[淨值]),

    加入年度漲幅 = Table.AddColumn(加入淨值, "年度漲幅", each (Record.Field(_, 最新日期) - Record.Field(_, 起始日期)) / Record.Field(_, 起始日期), Percentage.Type),

    加入周漲幅 = Table.AddColumn(加入年度漲幅, "周漲幅", each (Record.Field(_, 最新日期) - Record.Field(_, 周前日期)) / Record.Field(_, 周前日期), Percentage.Type),

    加入淨值比 = Table.AddColumn(加入周漲幅, "淨值比", each [淨值] / Base_淨值總額, Percentage.Type),

    移除多餘列 = Table.RemoveColumns(加入淨值比, {"股數", "匯率", "淨值"}),

    重新排列列 = Table.ReorderColumns(移除多餘列, List.Combine({{"標的", "淨值比"}, 日期列表, {"周漲幅", "年度漲幅"}})),

    排序及篩選 = Table.SelectRows(

        Table.Sort(重新排列列, {{"淨值比", Order.Descending}, {"標的", Order.Descending}}),

        each (List.Contains(投資組合[持股標的], [標的]) or Number.Abs([周漲幅]) >= 趴數 or List.Contains(指數, [標的])) and not List.Contains(排除, [標的])

    )

in

    排序及篩選


下面是GPT提供減少手動版本

我只是將語法丟出,GPT自動提供簡易減少手動版本

let

    來源 = Table.NestedJoin(投資組合, {"持股標的"}, 資料_5, {"標的"}, "資料_5", JoinKind.RightOuter),

    #"已展開 資料_5____" = Table.ExpandTableColumn(來源, "資料_5", {"標的","2023/12/29","2024/5/10","2024/5/17", "2024/5/24","2024/5/31","2024/6/7"}),

    已排序資料列 = Table.Sort(#"已展開 資料_5____",{{"持股標的", Order.Descending}}),

    已移除資料行 = Table.RemoveColumns(已排序資料列,{"持股標的"}),

 

    // 獲取所有日期欄位名稱

    日期欄位名稱 = List.RemoveFirstN(List.RemoveItems(Table.ColumnNames(已移除資料行), {"標的", "股數", "匯率"}), 0),

    最後一欄 = List.LastN(日期欄位名稱, 1){0},

    最後第二欄 = List.LastN(日期欄位名稱, 2){0},

   

    // 計算淨值

    T淨值_______ = Table.AddColumn(已移除資料行, "淨值", each [股數]*[匯率]*Record.Field(_, 最後一欄)),

    Base_淨值總額 = List.Sum(T淨值_______[淨值]),

 

    // 計算年度漲幅和周漲幅

    T年度漲幅_____ = Table.TransformColumnTypes(

        Table.AddColumn(T淨值_______, "年度漲幅", each (Record.Field(_, 最後一欄) - Record.Field(_, "2023/12/29")) / Record.Field(_, "2023/12/29")),

        {{"年度漲幅", Percentage.Type}}

    ),

    T周漲幅_____ = Table.TransformColumnTypes(

        Table.AddColumn(T年度漲幅_____, "周漲幅", each (Record.Field(_, 最後一欄) - Record.Field(_, 最後第二欄)) / Record.Field(_, 最後第二欄)),

        {{"周漲幅", Percentage.Type}}

    ),

   

    // 計算淨值比

    T淨值比 = Table.TransformColumnTypes(

        Table.AddColumn(T周漲幅_____, "淨值比", each [淨值] / Base_淨值總額),

        {{"淨值比", Percentage.Type}}

    ),

   

    // 移除不必要的欄位

    已移除資料行1 = Table.RemoveColumns(T淨值比, {"股數", "匯率", "淨值"}),

 

    // 重新排列欄位順序

    重新排_____ = Table.ReorderColumns(已移除資料行1, {"標的", "淨值比"} & 日期欄位名稱 & {"周漲幅", "年度漲幅"}),

 

    // 排序及篩選資料

    T排序及篩選 = Table.SelectRows(

        Table.Sort(重新排_____, {{"淨值比", Order.Descending}, {"標的", Order.Descending}}),

        each (List.Contains(投資組合[持股標的], [標的]) = true or Number.Abs([周漲幅]) >= 趴數 or List.Contains(指數, [標的]) = true) and List.Contains(排除, [標的]) = false

    ),

  

in

    T排序及篩選


修改前的版本

let

    來源 = Table.NestedJoin(投資組合, {"持股標的"}, 資料_5, {"標的"}, "資料_5", JoinKind.RightOuter),

    #"已展開 資料_5____" = Table.ExpandTableColumn(來源, "資料_5", {"標的","2023/12/29","2024/5/10","2024/5/17", "2024/5/24","2024/5/31","2024/6/7"}),

    已排序資料列 = Table.Sort(#"已展開 資料_5____",{{"持股標的", Order.Descending}}),

    已移除資料行 = Table.RemoveColumns(已排序資料列,{"持股標的"}),

    T淨值_______ = Table.AddColumn(已移除資料行, "淨值", each [股數]*[匯率]*[#"2024/6/7"]), //這裡也要修改........

    Base_淨值總額 = List.Sum(T淨值_______[淨值]),

    T年度漲幅_____ = Table.TransformColumnTypes(

                 Table.AddColumn(T淨值_______, "年度漲幅", each ([#"2024/6/7"]-[#"2023/12/29"])/[#"2023/12/29"]) , //年度如果修改要去改 資料_5週那個進階查詢

                         {{"年度漲幅", Percentage.Type}}),

    T周漲幅_____ = Table.TransformColumnTypes(

                 Table.AddColumn(T年度漲幅_____, "周漲幅", each ([#"2024/6/7"]-[#"2024/5/31"])/[#"2024/5/31"]) ,  //這裡也要改

                       {{"周漲幅", Percentage.Type}}),

    T淨值比 = Table.TransformColumnTypes(Table.AddColumn(T周漲幅_____, "淨值比", each [淨值]/Base_淨值總額),{{"淨值比", Percentage.Type}}),

    已移除資料行1 = Table.RemoveColumns(T淨值比,{"股數", "匯率","淨值"}),

    重新排_____ = Table.ReorderColumns(已移除資料行1,{"標的", "淨值比","2023/12/29","2024/5/10","2024/5/17", "2024/5/24","2024/5/31","2024/6/7","周漲幅", "年度漲幅"}),

    T排序及篩選 = Table.SelectRows(

                    Table.Sort(重新排_____,{{"淨值比", Order.Descending}, {"標的", Order.Descending}}) , each (List.Contains(投資組合[持股標的],[標的])=true or Number.Abs([周漲幅])>=趴數 or List.Contains(指數,[標的])=true) and List.Contains(排除,[標的])=false   )

in

T排序及篩選

 



有Ai的協助,自學python 需達到的程度

在有ai的情況下,學習python 需達到的程度,比我想的多了些,不過要能看懂及修改的確是需要具備。 很好的問題!以 你結合 AI 製作投資 YouTube 影片的目標 來看,其實不需要學習到非常進階的程式設計程度,但要掌握以下幾個關鍵層級: 【你該掌握的 Python 能力...