0

尝试将列从时间戳转换为日期时间,最后打印所需的结果。源是一个 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
4

2 回答 2

1

pd.to_datetime与 一起使用unit='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
于 2020-05-31T19:33:12.060 回答
0

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

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

结果

在此处输入图像描述

于 2020-05-31T19:31:23.183 回答