Blog Cover Image

Inspire you to have New thinking, Walk out your unique Road.

有的時候,你無意間遇到的一些故事,會激發你的靈感,改變你的想法,接下來你會用與之前全然不同的觀念去創造屬於你獨特的故事。

Sign @MinaYu.

後端小菜鳥學習記錄(11)

Posted on

這週終於把任務全刷完一遍了

再一個感覺一知半解的狀態下

懵懵懂懂的把東西做完了XD

按照慣例,又來到了周五PO學習筆記的時候

剛練習的前幾天,東西爆炸多,常常就是學到甚麼貼甚麼

也因為打文章的時間沒有很多(都說菜鳥了狂學習,狂吸收知識,能趕緊把東西貼來部落格就沒甚麼時間了XD)

下班跟假日都攤在那了,還是偶而我們的前端大神會唸一下刷LeetCode QQ

現在都希望運用周五晚上的時間來把這一週的筆記編輯一下,才不會看起來雜亂無章


沒想到學習筆記來到了第10篇

回顧我第一天第二天上工,還是個不會接MySQL的菜鳥

現在已經學到了下Where 條件 IN list抓資料

雖然看起來寫部落格會花很多時間,但有的時候我還是堅持寫部落格

多的時候記錄學習的筆記,但其時有的時候回來翻我也不知道要翻哪篇

也算是我學習後端的紀錄


想Print List內的字串,但不想要有 [ ] 外包括號




names = ["Sam", "Peter", "James", "Julian", "Ann"]
print(', '.join(names))
print(*names, sep=", ")

處裡Pandas DataFrame 的timedelta64格式







# 忘記是後五行還是取五筆, 將 timedelta 轉成秒數 
df[:5]['duration']/np.timedelta64(1, 's')





# 忘記是後五行還是取五筆, 將 timedelta 轉成小時
df[:5]['duration']/np.timedelta64(1, 'h')

<span class="n">將已存在的B, C欄位刪掉
</span><span class="n">df</span><span class="o">.</span><span class="n">drop</span><span class="p">(</span><span class="n">columns</span><span class="o">=</span><span class="p">[</span><span class="s1">'B'</span><span class="p">,</span> <span class="s1">'C'</span><span class="p">])</span>









<span class="n">DataFrame取到小數點後第二位
df</span><span class="o">.</span><span class="n">round</span><span class="p">(</span><span class="mi">2</span><span class="p">)</span>

10/30

這一天把卡了很久的TimeDelta, DateTime格式處裡做了一個突破

簡直是把之前遺留的毒瘤給一次解決

趕工的關係,就亂貼網站,現在也就

# 我在網路上找到一個轉換的函式
# 使用方式:
# strfdelta(tdelta, fmt)
# strfdelta(delta_obj, "{days} days {hours}:{minutes}:{seconds}")
# strfdelta(delta_obj, "{hours}:{minutes}:{seconds}")

def strfdelta(tdelta, fmt): 
    d = {"days": tdelta.days} 
    d["hours"], rem = divmod(tdelta.seconds, 3600) 
    d["minutes"], d["seconds"] = divmod(rem, 60) 
    return fmt.format(**d)








# DataTime的寫入格式(?)
import datetime
start = datetime.datetime(2009,2,10,14,00)
end   = datetime.datetime(2009,2,10,16,00)
delta = end-start
# 將日期轉字串
print(str(delta))





# 這個是我用lambda 將每個DateTime 轉成%d%m%Y
# DataFrame 是用apply函式, 然後用一行lambda 將每個值重新改一遍
df['A'].apply(lambda x: x.strftime('%d%m%Y'))





# 這個功能是我要將現有的時間, 每個時間 + 幾個小時 (Second, Minute沒試過, 留給大家嘗試)
from datetime import datetime, timedelta

nine_hours_from_now = datetime.now() + timedelta(hours=9)

# DataFrame的累加函式, 處裡工廠商品需要累加時很好用唷!
df.cumsum()













# 將重複值除去, 在取得一系列不重複的值, 若取商品清單應該是蠻好用的, 我自己是運用在取不同地點
df.drop_duplicates(subset=['UserData'])







# 好像是數這個DataFrame 總共有幾個Row
df.shape[0]
















# 咱的SQL大魔王出現
# 我有點忘記, 不過我是希望<code><span class="kwd">
</span></code>SELECT DISTINCT Category, MAX(CreationDate) FROM MonitoringJob GROUP BY Category ORDER BY MAX(CreationDate) DESC, Category








# 將Time 型別 轉成秒 除 3600 = Hour
time_d.total_seconds() /3600




# 將Time 轉成 秒數
object.dt.total_seconds()

這個還沒真正寫過, 這個是任務上遇到需要交叉比對 所找的方法

但我已經先用別的方法解掉任務了, 先將連結留著

https://blog.csdn.net/hustqb/article/details/78086394

# 恩要注意,其實每個程式都要注意保留字要特別處裡, 我算是忘記SQL也有保留字
# 如果報錯, 留意一下是否為保留字, 須加上 `Table` 來處理特殊字, 這邊是 Delete
INSERT INTO `User`(`Name`,`Type`,`Email`, `Delete`, `UpdateTime`)
VALUES
("***", 1, "***",0, "2018-10-30 10:36:45");

#其時也不用每個都加, 只要保留字 Delete 那個欄位特別加就行




# 平常可以不用加
INSERT INTO User(Name,Type,Email, Remove, UpdateTime)
VALUES 
("***", 1, "***",0, "2018-10-30 10:36:45");





# 可以用 IN 方法來篩選一系列的字
select * from Employee where Person IN ('余OO','鄭OO');











# 特別是If Else 時特別好用!

bool(dct) == (not True)













# 可以用apply 方式來顯示或對DF做動作
DataFrame.apply
Perform any type of operations.