iT邦幫忙

2022 iThome 鐵人賽

DAY 10
0
自我挑戰組

商業數據分析應用系列 第 10

[Day10] 那些關於Datetime的問題

  • 分享至 

  • xImage
  •  

今天繼續來解決昨天時間的問題,把時間變成字串後放在新增的欄位中,原本想說應該可以只取時間而不管日期,直接使用時間的大小來分組。但發現事情不是憨人想得這麼簡單,這些分割出來的字串會自動被分類成1970-01-01 時:分:秒(1970是設定中最早的年份,無法再更往前)。/images/emoticon/emoticon06.gif

我想了兩個方法來試圖解決:

  • 第一個:for迴圈,比較笨拙和花時間
    使用迴圈判斷「新增欄位字串」是否在「字串list」中,以00~05, 06~11, 12~17, 18~23分組。
    (截至9/12 23:32它還在跑啊...我可是18點左右就放著了欸XD...看起來還需要一段時間,只好明早來補充一下結果)
    /images/emoticon/emoticon06.gif

  • 第二個:統一新增欄位日期
    將新增欄位暫時視為統一日期,再做分組。(但經過第一個方法後,我覺得這個方法也需要經過迴圈和判斷,感覺也是需要很久?(遠目)。要開始來查查在SQL裡有沒有比較好的做法><...。


在等待程式跑完前,想先梳理一下關於datetime及time的常見應用,希望下次碰到類似的狀況時,能夠比較有概念的解決他們。

什麼是time,Datetime?

time.time()會返回西元1970至今的時間戳(從1970開始計算到現在過了多少秒),Datetime基本上相同,但比time多了一些函數可以使用。

常用語法:Time

time.localtime() #獲取本地時間

將time.time()產生的時間戳放入後,即可產生struct_time格式的本地時間,並可以依據需求取用內容(年/月/日/時/分/秒...)

time.strftime() #將struct_time格式轉換為文字格式
time.strptime() #解析文字資料,將文字格式轉換為struct_time格式

常用語法:datetime()

datetime.date() #字串轉換為時間日期,並可分別用.year/.month/.day取所需資料

這篇文章個人覺得寫得蠻不錯的~推推~


上一篇
[Day9] 使用value_counts()計算指定欄位數量
下一篇
[Day11] 將資料存入SQLite中
系列文
商業數據分析應用30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言