如何在python熊猫中将日期时间转换为毫秒

时间:2019-02-22 01:28:56

标签: python pandas numpy

所以我想将日期时间转换为毫秒,我的代码在这里

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用户

1 个答案:

答案 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')
相关问题