Python3 Pandas 列(以秒为单位)

Python3 Pandas column in seconds

我有这个 .csv 文件,其中包含如下所示的数据

"Time","CH-1[V]","CH-2[V]","CH-3[V]",
 0.000000000E+00,-4.07000E-01, 3.01000E-01,-4.40000E-01,
 1.000000000E+01,-4.11000E-01, 3.01000E-01,-4.29000E-01,
 2.000000000E+01,-3.99000E-01, 3.01000E-01,-4.15000E-01,
 3.000000000E+01,-3.87000E-01, 3.01000E-01,-4.09000E-01,
 4.000000000E+01,-3.79000E-01, 3.00000E-01,-4.15000E-01,

"Time" 列以秒为单位。该文件还包含格式为 14-10-25 16:07:40 的触发时间,这是时间的起点。

我想将第一列更改为 Time*TriggerTime

到目前为止我得到的只是一个将 triggertime 转换为 datetime 的函数

parse = lambda x: dt.datetime.strptime(x, '%S')
content2 = pd.read_csv(current_file, parse_dates=['Time'], index_col=0, date_parser=parse)

但我似乎得到一个错误:

ValueError: time data ' 0.000000000E+00' does not match format '%S'

我无法解决

有什么帮助吗? :)

In [9]: df = pd.read_csv(StringIO(data), index_col=0)

In [10]: df
Out[10]:
      CH-1[V]  CH-2[V]  CH-3[V]  Unnamed: 4
Time
0      -0.407    0.301   -0.440         NaN
10     -0.411    0.301   -0.429         NaN
20     -0.399    0.301   -0.415         NaN
30     -0.387    0.301   -0.409         NaN
40     -0.379    0.300   -0.415         NaN

将以秒为单位的列转换为 Timedelta,然后将其添加到时间戳

In [13]: pd.to_timedelta(df.index,unit='s') + pd.Timestamp('20141015 16:07:40')
Out[13]:
<class 'pandas.tseries.index.DatetimeIndex'>
[2014-10-15 16:07:40, ..., 2014-10-15 16:08:20]
Length: 5, Freq: None, Timezone: None


In [14]: (pd.to_timedelta(df.index,unit='s') + pd.Timestamp('20141015 16:07:40')).tolist()
Out[14]:
[Timestamp('2014-10-15 16:07:40'),
 Timestamp('2014-10-15 16:07:50'),
 Timestamp('2014-10-15 16:08:00'),
 Timestamp('2014-10-15 16:08:10'),
 Timestamp('2014-10-15 16:08:20')]