我有一个时间戳数据的Pandas列
In [27]: train["Original_Quote_Date"][6] Out[27]: Timestamp('2013-12-25 00:00:00')
如何检查这些对象与类型为datetime.date的对象的等价性
datetime.date
datetime.date(2013, 12, 25)
66bbxpm51#
使用.date方法:
.date
In [11]: t = pd.Timestamp('2013-12-25 00:00:00') In [12]: t.date() Out[12]: datetime.date(2013, 12, 25) In [13]: t.date() == datetime.date(2013, 12, 25) Out[13]: True
要与DatetimeIndex(即时间戳数组)进行比较,您需要以相反的方式进行比较:
In [21]: pd.Timestamp(datetime.date(2013, 12, 25)) Out[21]: Timestamp('2013-12-25 00:00:00') In [22]: ts = pd.DatetimeIndex([t]) In [23]: ts == pd.Timestamp(datetime.date(2013, 12, 25)) Out[23]: array([ True], dtype=bool)
dddzy1tm2#
从panda 0.20.3开始,使用.to_pydatetime()将任何pandas.DateTimeIndex示例转换为Python datetime.datetime。
.to_pydatetime()
pandas.DateTimeIndex
datetime.datetime
mlnl4t2r3#
假定时间列采用时间戳整数毫秒格式1天= 86400000毫秒给您:
day_divider = 86400000 df['time'] = df['time'].values.astype(dtype='datetime64[ms]') # for msec format df['time'] = (df['time']/day_divider).values.astype(dtype='datetime64[D]') # for day format
t9aqgxwy4#
您可以将一个datetime.date对象转换为一个panda时间戳,如下所示:
# !/usr/bin/env python3 # coding: utf-8 import pandas as pd import datetime # create a datetime data object d_time = datetime.date(2010, 11, 12) # create a pandas Timestamp object t_stamp = pd.to_datetime('2010/11/12') # cast `datetime_timestamp` as Timestamp object and compare d_time2t_stamp = pd.to_datetime(d_time) # print to double check print(d_time) print(t_stamp) print(d_time2t_stamp) # since the conversion succeds this prints `True` print(d_time2t_stamp == t_stamp)
llycmphe5#
这是从IBM coursera教程中得到的。
data['date'] = data['TimeStamp'].apply(lambda d: datetime.date.fromtimestamp(d))
q5lcpyga6#
我采用了菲洛梅诺·冈萨雷斯(Filomeno Gonzalez)推荐的方法,尽管有一点小改动:
data['date'] = data['date'].apply(lambda x: x.date())
chhkpiq47#
如果我有一个带有时间戳列(1546300800000, 1546301100000, 1546301400000, 1546301700000, 1546302000000)的PandasDataFrame,并且我想将其转换为日期时间格式
1546300800000, 1546301100000, 1546301400000, 1546301700000, 1546302000000
import datetime df['date'] = df['date'].apply(lambda x: datetime.datetime.fromtimestamp(x/1000.0))
这将返回格式为2019-01-01 00:00:00, 2019-01-01 00:05:00, 2019-01-01 00:10:00, 2019-01-01 00:15:00, 2019-01-01 00:20:00 ...等的列除以1000,将ms转换为s,如here所述
2019-01-01 00:00:00, 2019-01-01 00:05:00, 2019-01-01 00:10:00, 2019-01-01 00:15:00, 2019-01-01 00:20:00
7条答案
按热度按时间66bbxpm51#
使用
.date
方法:要与DatetimeIndex(即时间戳数组)进行比较,您需要以相反的方式进行比较:
dddzy1tm2#
从panda 0.20.3开始,使用
.to_pydatetime()
将任何pandas.DateTimeIndex
示例转换为Pythondatetime.datetime
。mlnl4t2r3#
假定时间列采用时间戳整数毫秒格式
1天= 86400000毫秒
给您:
t9aqgxwy4#
您可以将一个datetime.date对象转换为一个panda时间戳,如下所示:
llycmphe5#
这是从IBM coursera教程中得到的。
q5lcpyga6#
我采用了菲洛梅诺·冈萨雷斯(Filomeno Gonzalez)推荐的方法,尽管有一点小改动:
chhkpiq47#
如果我有一个带有时间戳列(
1546300800000, 1546301100000, 1546301400000, 1546301700000, 1546302000000
)的PandasDataFrame,并且我想将其转换为日期时间格式这将返回格式为
2019-01-01 00:00:00, 2019-01-01 00:05:00, 2019-01-01 00:10:00, 2019-01-01 00:15:00, 2019-01-01 00:20:00
...等的列除以1000,将ms转换为s,如here所述