作者jasonhsu14 (14号星期五的杰森)
看板Python
标题[问题] DataFrame的index问题
时间Sat Sep 29 14:38:22 2018
大家好
小弟汇入外部资料,如下图
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
或是有甚麽更好的处理方式
先谢谢了
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 59.115.231.159
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1538203104.A.B2E.html
1F:→ Jeffrey11061: 先把时间转成字串用datetime.strptime 09/29 15:23
2F:→ Jeffrey11061: 转成datetime再用strftime转成你要的格式 09/29 15:23
3F:→ jasonhsu14: 抱歉 我不是很懂你的意思 09/29 20:34
4F:推 goldflower: 因为你指定了原本没有的index 当然会没有元素 09/29 21:57
5F:→ goldflower: 直接df.index = pd.to_datetime(...)就好了 09/29 21:57
6F:→ jasonhsu14: 尝试楼上的方法後,成功了!!谢谢二位愿意帮助我 09/30 10:43
7F:→ jasonhsu14: 另外想询问gold大所说,指定原没有的index这意思是? 09/30 10:43
8F:推 goldflower: 你指定了dataframe的资料(FileFrame4) 那你设定index 09/30 12:04
9F:→ goldflower: 的时候就会从FileFrame4去找 但是都没找到 所以才会 09/30 12:05
10F:→ goldflower: 都得到nan 09/30 12:05
11F:→ goldflower: 你要用这种方法的话可以用dictionary把每个column 09/30 12:06
12F:→ goldflower: 指定进去 然後index一样摆你的写法就可以了 09/30 12:06
13F:→ jasonhsu14: 是说我的FileFrame4原本的index是0,1,..,所以我在 09/30 16:23
14F:→ jasonhsu14: 设定index时候,就会找不到,因此得到nan 09/30 16:24