Python Pandas:使用Unix历元时间戳作为日期时间索引
我的应用程序涉及处理以下形式的数据(包含在CSV中):Python Pandas:使用Unix历元时间戳作为日期时间索引,python,numpy,pandas,time-series,Python,Numpy,Pandas,Time Series,我的应用程序涉及处理以下形式的数据(包含在CSV中): Epoch (number of seconds since Jan 1, 1970), Value 1368431149,20.3 1368431150,21.4 .. 目前,我使用numpy loadtxt方法读取CSV(可以很容易地使用从Pandas读取的CSV)。目前,对于我的系列,我将时间戳字段转换如下: timestamp_date=[datetime.datetime.fromtimestamp(timestamp_colu
Epoch (number of seconds since Jan 1, 1970), Value
1368431149,20.3
1368431150,21.4
..
目前,我使用numpy loadtxt方法读取CSV(可以很容易地使用从Pandas读取的CSV)。目前,对于我的系列,我将时间戳字段转换如下:
timestamp_date=[datetime.datetime.fromtimestamp(timestamp_column[i]) for i in range(len(timestamp_column))]
接下来,我将timestamp_date设置为数据帧的日期时间索引。我试着在几个地方搜索,看看是否有一种更快(内置)的方式来使用这些Unix时代时间戳,但没有找到。许多应用程序都使用这种时间戳术语
将它们转换为
datetime64[s]
:
np.array([1368431149, 1368431150]).astype('datetime64[s]')
# array([2013-05-13 07:45:49, 2013-05-13 07:45:50], dtype=datetime64[s])
您还可以使用pandas来_datetime:
df['datetime'] = pd.to_datetime(df["timestamp"], unit='s')
此方法需要Pandas 0.18或更高版本。您也可以像这样使用Pandas DatetimeIndex
pd.DatetimeIndex(df['timestamp']*10**9)
*10**9
将其转换为预期的时间戳格式
这很好,因为它允许您在该系列中使用诸如
.date()
或.tz\u localize()
之类的函数。哇!不知道会这么容易!最好的部分是它保留了矢量化操作的感觉。