如何自动将时间转换为时间戳

问题描述 投票:0回答:1

我的回测代码读取了UNIX时间戳,但是CSV文件中的时间是这种格式的2020-04-10 04:00:00,
应该是这样的1512045180000。需要进行哪些更改才能读取它。我尝试了不同的方法,但这对我来说很难。


def getEthereumData(start_date, end_date):
    print("Start reading ethereum data..")
    path = os.path.dirname(os.path.abspath(__file__))
    data = pd.read_csv(path + "\\data\\BTCUSDT-1m-data.csv")
    data['DateTime'] = [datetime.fromtimestamp(ts/1000) for ts in data["Timestamp"]]
    data = data.set_index('DateTime')
    data = data.dropna()
    data = data[parse(start_date): parse(end_date)]
    print("Reading complete")

    return data
python pycharm back-testing
1个回答
0
投票

要将日期时间格式“2020-04-10 04:00:00”转换为 Unix 时间戳格式(如 Python 中的“1512045180000”),可以使用 datetime 模块解析日期时间字符串,然后将其转换为 Unix 时间戳。以下是您可以根据自己的情况执行此操作的方法:

import os
import pandas as pd
from datetime import datetime

def getEthereumData(start_date, end_date):
    print("Start reading ethereum data..")
    path = os.path.dirname(os.path.abspath(__file__))
    data = pd.read_csv(path + "\\data\\BTCUSDT-1m-data.csv")
    
    # Convert datetime strings to Unix timestamps in milliseconds
    data['Timestamp'] = data['Timestamp'].apply(lambda x: int(datetime.strptime(x, "%Y-%m-%d %H:%M:%S").timestamp() * 1000))

    data = data.set_index('Timestamp')
    data = data.dropna()
    data = data[(data.index >= start_date) & (data.index <= end_date)]
    print("Reading complete")

    return data
© www.soinside.com 2019 - 2024. All rights reserved.