python - 如何从 int64 转换回时间戳或日期时间?
问题描述
我正在做一个项目,看看投手的不同投球对每场比赛的破坏程度。我在这里查找了一个较早的错误,该错误修复了我的错误,但它给了我一些奇怪的数字。我的意思是,当我打印我希望成为的 2020 年 8 月 3 日时,我得到 1.5964128e+18。这就是我到达那里的方式。
hughes2020=pd.read_csv(r"C:/Users/Stratus/Downloads/Hughes2020Test.csv",parse_dates=['game_date'])
game=hughes2020['game_date'].astype(np.int64)
#Skipping to next part to an example
elif name[i]=="Curveball":
if (c<curve)
xcurve[c]=totalx[i]
ycurve[c]=totaly[i]
cudate[c]=game[i]
c+=1
当我打印 cudate 时,它给了我很大的数字,我想知道如何将它改回来。
如果我运行它
game=hughes2020['game_date'] #.astype(np.int64)
#Skipping to next part to an example
elif name[i]=="Curveball":
if (c<curve)
xcurve[c]=totalx[i]
ycurve[c]=totaly[i]
cudate[c]=game[i]
c+=1
它给了我一个
TypeError:float() 参数必须是字符串或数字,而不是“时间戳”
解决方案
转换int
为datetime
使用pd.to_datetime()
:
df = pd.DataFrame(data=[1.5964128e+18], columns = ['t'])
df['t2'] = pd.to_datetime(df['t'])
t t2
0 1.596413e+18 2020-08-03
然而,更好的解决方案是在读取 csv 时转换日期(正如@sinanspd 正确指出的那样)。中的使用parse_dates
和其他相关选项pd.read_csv()
。功能手册在这里
推荐阅读
- javascript - Three.js : 用一系列点绘制地图
- python - 如何在pymunk中制作静态矩形形状?
- excel - Excel VBA 分割代码行 - ADO 连接
- netsuite - Netsuite 过滤器属性 SHOW FILTER IN FILTER REGION 在保存的搜索中的可用性
- javascript - 选择电影后,SWAPI 不会返回所有人
- python-3.x - 请求站点时没有响应代码返回并且程序继续运行
- wordpress - 将自定义字段添加到 woocommerce 订单电子邮件模板
- mysql - 关于 MySQL 事务死锁的说明
- google-cloud-platform - 在 Google Cloud Platform (GKE) 中为集群工作负载配置 yaml 设置全局变量
- airflow - 从 trigger_dag_run_operator 设置任务 ID