pandas 是 python 資料分析中資料前處理的神器
1. 資料 NA 值統計
2. 去除 NA 值
3. 資料自動填補 NA 值的操作
4. 時間序列解析度操作
5. 資料分割選擇與合併

x = np.arange(0,5,0.1)
y = np.square(x)

解釋:
np.arange(start, stop, step) 是 NumPy 用來產生一個等間距的數列的函數。
start = 0:從 0 開始。
stop = 5:到 5 結束(不包含 5)。
step = 0.1:間距為 0.1。
所以這行會產生一個從 0 到 4.9 的數列
x = [0.0, 0.1, 0.2, 0.3, ..., 4.9]
總共會有 50 個元素。

np.square() 是 NumPy 中對每個元素進行平方的函數。


drinks.groupby('continent')
.spirit_servings.mean()
.sort_values(ascending=False)
.rename('spirit_servings_mean')
對資料表進行資料分組、計算平均值、排序並重新命名欄位。查詢洲別平均消耗的啤酒量
程式,終於下到又臭又長了

 

Python資料數據視覺化應用
01:12 01. 折れ線グラフ
03:27 02. 散布図
04:53 03. ヒストグラム
08:33 04. 棒グラフ
09:18 05. タイトルとラベル
10:29 06. 軸範囲
11:46 07. 対数軸
12:55 08. 凡例
15:45 09. マーカの種類・サイズ変更
17:35 10. 注釈
21:10 11. 目盛り
22:47 12. グリッド線
23:09 13. 複数グラフの表示
25:43 14. ヒートマップ
27:13 15. 3次元グラフ
30:28 16. 円グラフ
32:06 17. GUIウィジェット。

autopct='%.1f%%')   # %.1f%% 表示顯示小數點一位的浮點數,後方加上百分比符號
自動計算百分比 ,預設無,可使用函式產生和組合。
%matplotlib inline 這行主要讓你可以在Jupyter Notebook 上畫圖表

ky0dd 發表在 痞客邦 留言(0) 人氣()

今天教GitHub及外掛圖形化介面Gitkarken
連python以外的課都跟不太上了腦中浮現退訓的念頭
怎麼樣比較跟得上?就是教學的螢幕跟操作的螢幕分開。
分享螢幕的設備有問題所以就算有區網我們還是得連到外網google meeting
螢幕就夠小了(19吋?)還要塞視訊介面,看老師用小螢幕表演10分鐘
然後換你操作,我記不住阿又沒有錄像能回放

資料庫不外乎增查刪減,至今教的都是不動原檔資料,
查的部分就算有用到運算。之後要開始教增減刪,
SQL如何與python連動

職訓課程的迷惘 別的網友上Java職訓班的心得日記,
「應該學習到晚上9點、走在看不到盡頭與未來的路」

ky0dd 發表在 痞客邦 留言(0) 人氣()

Git 分布式版本控制系統,

提供了強大的合併工具,可以輕鬆解決多人協作時的代碼衝突。這使得團隊可以同時在多個特性或修復上進行開發,而不會影響主線(如master或main)。
協作和合併: 由於 Git 是分布式的,開發者可以自由地在本地版本庫進行修改,而後將修改推送到遠程版本庫。
高效的性能: Git 能夠處理大規模的專案,並且對大多數操作進行了優化,這使得它在處理代碼庫時非常快速。
資料完整性: Git 使用 SHA-1 哈希來檢查每個提交和版本的完整性,保證資料在傳輸過程中不會被篡改。
分支管理: Git 提供了強大的分支功能,允許開發者輕鬆創建、切換和合併分支。

常見的 Git 操作
圖形化介面 gitk --all &
初始化倉庫:git init:
在當前目錄下創建一個新的 Git 版本庫。

克隆倉庫:git clone <repository-url>:
從遠端倉庫複製一個 Git 倉庫到本地。

查看狀態:git status:
查看當前工作目錄和暫存區的狀態,顯示哪些文件已經修改但尚未提交。

提交變更:git add <file>:
將更改的文件添加到暫存區,準備提交。

git commit -m "message":
將暫存區的變更提交到本地版本庫。

查看歷史紀錄:git log:
查看提交的歷史紀錄。

分支管理:
git branch:列出當前的所有分支。
git checkout -b <branch-name>:創建並切換到一個新的分支。
git merge <branch-name>:將指定分支的更改合併到當前分支。

推送和拉取:
git push:將本地的變更推送到遠端倉庫。
git pull:從遠端倉庫拉取並合併最新的變更到本地。

 

🔹Vi 是什麼?
Vi 是一個功能強大的文本編輯器,常用於 Unix 和 Linux 系統,適合用來編輯 配置文件、程式碼等。
雖然學習曲線較陡,但熟練後可以極高效率地操作。

🔹Vi 的三種模式

模式名稱    進入方式    功能說明
普通模式(Normal Mode)    Vi 啟動後預設模式    用來導航、刪除、複製、貼上等
插入模式(Insert Mode)    在普通模式下按 i(光標前插入)、a(光標後插入)等    用來輸入文字
命令模式(Command Mode)    在普通模式下按 :    用來儲存、退出、執行命令等

🔹Vi 的基本操作流程
1.開啟文件:vi filename
2.進入插入模式以編輯內容:按 i
3.編輯完成後按 Esc 回到普通模式
4.進行以下操作之一:


操作說明    指令
保存並退出(有修改)    :wq
退出(無修改)        :q
強制退出(不保存)    :q!
只保存(不退出)    :w


來到這種轉職班,至少會感受到同學的鬥志
十年前我參加的大同委訓班,可以說根本沒篩選
今天跟比較早到的同學聊天,他說睡眠時間不夠時我感到納悶
因為他在做自己的專案,初學者的我們會的不多,他就靠chatGPT拼拼湊湊走自己的路
我最近都很想打瞌睡,目前的內容離開發程式很遙遠。
資工系8個學期,但只有3個多月的我們學習時間僅僅是一個期中考
我自己都說,這裡只是一個起跑點

ky0dd 發表在 痞客邦 留言(0) 人氣()

python課越來越沒興趣,感覺就是在清洗資料各種整理運算,但沒有EXCEL的圖形介面能用
我對程式開發比較有興趣。倒也不是說我對大數據沒興趣,因為以人類的認知來說
其實再小的物質都是由很大的數量物質所組成,數量的差異能帶來感受,了解世界

館前路的聯成補習班地點沒話說而且有助教
可是我比較喜歡大同大學的環境座位寬敞很多
老師比較會用黑板,還有影音檔能複習

import pandas as pd

df1=df.fillna(df.mean()) # 用該欄的平均值來填充空值
df1=df.dropna(axis = 0)  # 刪除包含空值的行

 

ky0dd 發表在 痞客邦 留言(0) 人氣()

4/13是我生日的日子,但也沒什麼好玩&值得開心
這天選擇帶職訓的課本複習&預習
4/14星期一的課是SQL,老師帶匯入SQL檔案的地方不熟不順所以稍微複習照課本的說明試了一下
雖不完全相同,但有助於我打通

 


今天上課將數值的地方講完了,然後提到了這個經典的議題
為什麼在電腦上0.1+0.2 !=0.3

螢幕擷取畫面 2025-04-14 213902.jpg

這算是SQL最複雜的語法,
SELECT是不會改動到資料庫的作業指令
從contry這個sheet,找出Name欄位裡由兩個單字組成的國家
兩個單字之間會有空白,只要符合這個條件就不會是0
使用函數LEFT把這個國家從空白處-1能提取到
這個國家第一個單字的所有英文字母,查詢結果就是左下角那些單字

會EXCEL的話今天的課,沒什麼難點就是要記怎麼用程式碼操作
基礎查詢、運算式與函式上完了

ky0dd 發表在 痞客邦 留言(0) 人氣()

今天上的是用pandas做資料處理與分析
如排序sort
篩選filter
遮罩mask
刪漏值dropna
補漏值fillna

 

ky0dd 發表在 痞客邦 留言(0) 人氣()


今天課程繼續講Numpy,Pandas,以矩陣的方式做處理

原來這兩個套件,含在一開始安裝的Anaconda
如果不是批量處理CSV資料開啟關閉查閱修改很麻煩
不像圖形化介面,點一點就OK,要打程式碼輸入指令
EXCEL只有二維行跟列,但Numpy可以是好幾維的矩陣,
資料套用Numpy後,可做高速大量處理
Pandas則是能將數據視覺化

體驗過就知道為什麼會用微軟office
但就算是EXCEL也只有1,048,576 列乘以16,384 欄
撈資料處理大數據時,是不夠用的

ky0dd 發表在 痞客邦 留言(0) 人氣()


Python 完整教學 (2023) 由CodeShiba 程式柴建立
原來基礎python課已經上完了,只用5天約30小時
今天課程介紹NumpyPandas資料科學、時間函式庫、匯入CSV
Python NumPy 入門教學課程
 

第一次上到王怡婷老師的課,Hedisql基本操作、資訊及通訊技術
今天就是準備SQL的作業環境能用圖形化介面,
資料庫的作業系統不一定是用windows
所以也學著用cmd命令提示字元操作
查port、開啟程式、設定root與創建使用者
還有匯入CSV與檢查是否成功

班上共30人,跟5個男同學認識講過話了

5/13 python課程上完要交個人專題
7/9 java課程上完要交專題1~4人一組

ky0dd 發表在 痞客邦 留言(0) 人氣()

老師教學的大綱雖然跟發的課本一致,但會教更多應該學的內容。
不過課本有其各自速成的較易看到成果的主題

今天有學新東西,資料排版及匯入函式
老師現在的上課方式spyder實作、PTT、w3schoolspython官網文檔 

定義了一個叫做 demo 的「函數」(function),你可以把它想像成一個小小的工具,你給它特定的指令,它就會幫你做一些事情,然後可能會給你一個結果。

讓我們仔細看看 demo 這個工具裡面做了什麼:

def demo():
    if 1:
        return 10
    else:
        return 0

def demo():: 這一行告訴電腦,我們要定義一個叫做 demo 的函數。括號 () 裡面通常會放一些「輸入」給這個函數的資訊,但這個例子裡面是空的,表示這個函數不需要任何輸入就可以執行。

if 1:: 這一行是一個「條件判斷」。if 的意思是「如果」。在這裡,if 後面跟著一個數字 1。在 Python 裡面(以及很多程式語言中),非零的數字通常被視為「真」(True)。所以,這行程式碼的意思是:「如果 1 是真(True)...」。

return 10: 這一行是說,如果 if 後面的條件成立(也就是 1 是真),那麼這個函數就會「回傳」(return)數值 10。你可以把「回傳」想像成函數完成工作後,把結果交還給你。

else:: else 的意思是「否則」。如果 if 後面的條件不成立(也就是說是「假」False),那麼就會執行 else 後面的程式碼。

return 0: 這一行是說,如果 if 後面的條件不成立(但實際上 1 永遠是真,所以這行在這個例子中永遠不會被執行到),這個函數就會回傳數值 0。
接下來這兩行程式碼做了什麼呢?

r=demo()
r
10

r=demo(): 這一行呼叫(執行)了我們剛剛定義的 demo 函數。當 demo() 被執行後,它會按照我們剛剛說的步驟,因為 if 1: 的條件永遠成立,所以它會回傳數值 10。然後,這個回傳的數值 10 就會被「賦值」(assigned)給一個叫做 r 的「變數」(variable)。你可以把變數想像成一個可以儲存數值的盒子,在這裡,我們把 10 這個數值放進了 r 這個盒子裡。

r: 這一行只是單獨寫了變數 r 的名字。在 Python 的互動式環境中(就像你看到的結果),當你輸入一個變數的名字並按下 Enter,它會顯示這個變數目前儲存的值。所以,因為 r 裡面儲存了 10,所以下一行就顯示了 10。

簡單來說,這段程式碼做了以下的事情:
定義了一個永遠會回傳 10 的小工具(函數 demo)。
使用這個小工具,並把得到的結果 (10) 放到一個叫做 r 的盒子裡。
告訴我們 r 這個盒子裡裝的是 10。


def fever(t):
    if t >= 38:
        return("發燒")
    else:
        return("正常")

try:
    temperature = float(input("請輸入體溫: "))
    result = fever(temperature)
    print(result)
except ValueError:
    print("輸入錯誤,請輸入數字!")

 

ky0dd 發表在 痞客邦 留言(0) 人氣()

差點忘記更新
今天主要是教集合(set)、字典(dict)
老師從頭開始複習串列(list)、數組(tuple)

未命名.jpg
1から19まで、奇数なら足して、偶数なら引いて、最後に結果を出力する
num = 1
summation = 0
while num < 20:
    if num % 2 == 1:
        summation += num
    else:
        summation -= num
    num += 1
print(summation)

 

計算1到指定數字平方和
end = int(input())
num = 1
square_sum = 0
while num<= end:
    square_sum += num**2
    num += 1
print(square_sum)

 

string = input("請輸入字串")
s = input("輸入搜尋字,可查閱出現次數")
num = 0
count = 0
while num < len(string):
    if string[num] == s: #string 中第 num 個字跟搜尋字s相同
        count += 1
    num += 1
print("出現次數", count)

string = input("請輸入字串")
s = input("輸入搜尋字,可查閱出現次數")
count = string.count(s)
print("出現次數", count)

 

計算輸入成績的平均
scores = input().split()
total = 0
for score in scores:
    total += int(score)
average = total / len(scores)
print("平均分數:", average)

 

找出串列裡最大的數
list1=[12,34,29,7,13,21]
largest = list1[0]
for num in range(1,len(list1)):
    if largest<list1[num]:
       largest = list1[num]
print(largest)

 

每個成績以空格輸入,輸入N個成績後判斷有幾個及格
scores = input()
scoreslist = scores.split()
count = 0
for i in range(len(scoreslist)):
    if int(scoreslist[i])>=60:
        count = count + 1
print("及格人數:" + str(count))

 

成果一樣的迴圈寫法

sed=["a","b","c"]
rock=["c","d","e","f"]

for i in range(len(rock)):
    if rock[i] in sed:
        print(rock[i]+"有在sed裡面")
    else:
        print(rock[i]+"不在sed裡面")
print("判斷完成")

for item in rock:
    if item in sed:
        print(item + "有在sed裡面")
    else:
        print(item + "不在sed裡面")
print("判斷完成")

for item in rock:
    print(item + ("有在sed裡面" if item in sed else "不在sed裡面"))
print("判斷完成")

ky0dd 發表在 痞客邦 留言(0) 人氣()