繁体   English   中英

从时间戳(纪元时间)转换为正确的 Pandas DateTime colmn

[英]Convert from timestamp (Epoch time) to Proper Pandas DateTime colimn

尝试将列从时间戳转换为日期时间,最后打印所需的结果。 源是 Unix 纪元时间戳。 我可以转换单个值,但无法对整列数据进行转换。 谢谢!!

import pandas as pd 
import numpy as np
from datetime import datetime
thd = pd.DataFrame(data=data["candles"])
data={'candles': [{'open': 1417.5,
   'high': 1417.52,
   'low': 1416.95,
   'close': 1416.95,
   'volume': 508,
   'datetime': 1590758940},
  {'open': 1416.95,
   'high': 1420.18,
   'low': 1415.06,
   'close': 1416.64,
   'volume': 32934,
   'datetime': 1590759000},]
}

thd["Time"]=pd.to_datetime(thd["datetime"])
display(thd)
datetime.fromtimestamp(1590759060) #<---this is the result I want to get on dataframe

pd.to_datetimeunit='s'一起使用:

In [731]: thd['datetime'] = pd.to_datetime(thd['datetime'], unit='s') 

In [732]: thd                                                          
Out[732]: 
      open     high      low    close  volume            datetime
0 1,417.50 1,417.52 1,416.95 1,416.95     508 2020-05-29 13:29:00
1 1,416.95 1,420.18 1,415.06 1,416.64   32934 2020-05-29 13:30:00

您可以在列上使用 apply 为列中的每个值执行此 function

thd['datetime'].apply(datetime.fromtimestamp)

完整代码

import pandas as pd 
import numpy as np
from datetime import datetime

data={'candles': [{'open': 1417.5,
'high': 1417.52,
'low': 1416.95,
'close': 1416.95,
'volume': 508,
'datetime': 1590758940},
{'open': 1416.95,
'high': 1420.18,
'low': 1415.06,
'close': 1416.64,
'volume': 32934,
'datetime': 1590759000},]
}

thd = pd.DataFrame(data=data["candles"])

thd['datetime_converted'] = thd['datetime'].apply(datetime.fromtimestamp)

thd

结果

在此处输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM