所以我想将日期时间转换为毫秒,我的代码在这里
import pandas as pd
import numpy as np
flyer = pd.read_csv("./csv/Flyers Dataset - Flyers Dataset.csv",parse_dates = ['timestamp'])
flyer.dropna(axis=0, how='any', thresh=None, subset=None, inplace=True)
pd.set_option('display.max_rows', 20)
flyer.to_csv('myfile.csv')
因此,flyer变量基本上是我的整个数据帧(这是我的csv文件)。 CSV https://i.stack.imgur.com/qLq2U.png
任何形式的反馈将不胜感激。对于这个问题的任何格式,我感到很抱歉,这只是我的第二个问题。
此致
Gratefull StackOverflow用户
答案 0 :(得分:0)
鉴于“时间戳”列是一个日期时间对象,并且您的基本引用日期是2018年10月1日,因此您可以通过这种方式计算以毫秒为单位的时间增量
import pandas as pd
from datetime import datetime, timedelta, timezone
首先,从示例时间戳输入中获取时区信息:
datetime.strptime('2018-10-01 13:56:36-0400', '%Y-%m-%d %H:%M:%S%z')
>>>datetime.datetime(2018, 10, 1, 13, 56, 36, tzinfo=datetime.timezone(datetime.timedelta(-1, 72000)))
然后,我们可以创建具有相同时区详细信息的tz感知基准日期。之后,您应该可以进行减法了。
base_date = datetime(2018,10,1, tzinfo=timezone(timedelta(-1,72000)))
flyer = pd.read_csv("./csv/Flyers Dataset - Flyers Dataset.csv",parse_dates = ['timestamp'])
flyer.dropna(axis=0, how='any', thresh=None, subset=None, inplace=True)
# 1000 milliseconds in a second
flyer.loc[:,'TimeDelta'] = flyer.loc[:,'timestamp'].apply(lambda x: (x - base_date).total_seconds() * 1000)
pd.set_option('display.max_rows', 20)
flyer.to_csv('myfile.csv')