Python数据科学手册Seaborn马拉松可视化里时分秒转化为
2018-11-05 本文已影响0人
041c14885cdd
在做Python Data Science Handbook的实例学习,4.16.3 案例:探索马拉松比赛成绩里,有提示将时分秒的时间化为秒的总数,以方便画图。书里给出的指令是:
data['split_sec']=data['split'].astype(int)/1E9
data['final_sec']=data['final'].astype(int)/1E9
我用这种方式会出现以下错误:
TypeError: cannot astype a timedelta from [timedelta64[ns]] to [int32]
在网上搜索了以下,尝试了1.更新numpy;2.用python3进行测试。均没有解决。所以我自己硬着头皮写了一个函数完成了这个转换的过程。
函数输入:以“时:分:秒”格式显示的series列
函数输出:以总计数秒显示的列
函数代码:
def t2s(tser):
tot=[]
for i in range(len(tser)):
h,m,s=tser[i].split(":")
tot.append(int(h)*3600+int(m)*60+int(s))
return tot
具体调用:(类似Handbook上的输入输出功能)
data['split_sec']=t2s(data('split'))
data['final_sec']=t2s(data('final'))
我这个是一个曲线救国的方法,记录下来以便复习,希望在将来的学习中能找到出现这个问题的原因。