[問題] DataFrame的index問題

作者: jasonhsu14 (小健人)   2018-09-29 14:38:22
大家好
小弟匯入外部資料,如下圖
https://i.imgur.com/w2ihTXG.jpg
index是按照0,1,2,...這樣排下去
但我有一個時間測試的column
其元素是20180730085000、20180730085500、....
該column是將時間以數字方式顯示,如20180730085000就是2018-07-30的08:50:00
但我想嘗試將時間測試的column轉成時間的形式,而非數字
並將轉換後的時間設為index
因此有下列程式碼
FileFrame6=pd.DataFrame(FileFrame4,index=pd.to_datetime(FileFrame4['時間測試
'].astype(str),format='%Y%m%d%H%M%S'))
我想做的事情就是先透過pd.to_datetime將那一串數字先轉成時間
然後新創一個DataFrame,並指定其index就是轉換後的時間
但雖然有成功將Index設成我想要的時間
可是所有的元素都變成nan...
https://i.imgur.com/HNkrI0j.jpg
因此想請問版友們我該怎麼解決這個問題QQ
或是有甚麼更好的處理方式
先謝謝了
作者: Jeffrey11061 (Jeff)   2018-09-29 15:23:00
先把時間轉成字串用datetime.strptime轉成datetime再用strftime轉成你要的格式
作者: jasonhsu14 (小健人)   2018-09-29 20:34:00
抱歉 我不是很懂你的意思
作者: goldflower (金色小黃花)   2018-09-29 21:57:00
因為你指定了原本沒有的index 當然會沒有元素直接df.index = pd.to_datetime(...)就好了
作者: jasonhsu14 (小健人)   2018-09-30 10:43:00
嘗試樓上的方法後,成功了!!謝謝二位願意幫助我另外想詢問gold大所說,指定原沒有的index這意思是?
作者: goldflower (金色小黃花)   2018-09-30 12:04:00
你指定了dataframe的資料(FileFrame4) 那你設定index的時候就會從FileFrame4去找 但是都沒找到 所以才會都得到nan你要用這種方法的話可以用dictionary把每個column指定進去 然後index一樣擺你的寫法就可以了
作者: jasonhsu14 (小健人)   2018-09-30 16:23:00
是說我的FileFrame4原本的index是0,1,..,所以我在設定index時候,就會找不到,因此得到nan

Links booklink

Contact Us: admin [ a t ] ucptt.com