Python 替换时间戳中的日期

Python 替换时间戳中的日期,python,pandas,dataframe,timestamp,Python,Pandas,Dataframe,Timestamp,我试图从熊猫数据帧中获得准确的时间戳。我的文件从一天开始就有时间戳(以秒为单位),每个文件的文件名中都有日期。我已经能够使用以下工具将秒转换为小时和分钟: df['time']=pd.to_datetime(df['sec'],unit='s') 然而,YYMMDD从新纪元开始。我知道timestamp有一个replace函数,但是我没有成功地使它工作。有可能让这样的东西起作用吗 df['month']=month df['day'] = day df['year'] = 2018 date =

我试图从熊猫数据帧中获得准确的时间戳。我的文件从一天开始就有时间戳(以秒为单位),每个文件的文件名中都有日期。我已经能够使用以下工具将秒转换为小时和分钟:
df['time']=pd.to_datetime(df['sec'],unit='s')
然而,YYMMDD从新纪元开始。我知道timestamp有一个replace函数,但是我没有成功地使它工作。有可能让这样的东西起作用吗

df['month']=month
df['day'] = day
df['year'] = 2018
date = '%s-%s-%s '%(year, month, day) + df['sec']
df['time'] = pd.to_datetime(date, unit='s')

或者,如何更改时间戳,使其仍具有所需的时/分/秒,但根据文件名/其他列更改日期?

我们可以将第二列转换为纳秒,并通过添加该日期的
pd.timestamp
值来添加纳秒数

pd.to_datetime(df['sec']*(10**9) + pd.Timestamp('the date').value)
完整示例:

import pandas as pd

# Suppose we have a filename such as
fname = '2018-01-01.txt'

# Create a csv-file with col sec and values 0,1000,2000
with open(fname,'w') as f:
    f.write('sec\n0\n1000\n2000')       

# Read dataframe
df = pd.read_csv(fname)

# Create datetime column (fname[:-4] = '2018-01-01')
df['datetime'] = pd.to_datetime(df['sec']*(10**9) + pd.Timestamp(fname[:-4]).value)

print(df)
返回:

    sec            datetime
0     0 2018-01-01 00:00:00
1  1000 2018-01-01 00:16:40
2  2000 2018-01-01 00:33:20

请发布一个小样本输入和所需输出。看见