首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python3 Pandas列(秒)

Python3 Pandas列(秒)
EN

Stack Overflow用户
提问于 2015-02-18 13:07:28
回答 1查看 431关注 0票数 0

我有一个包含如下数据的.csv文件

代码语言:javascript
复制
"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

到目前为止,我所得到的只是一个将触发时间转换为日期时间的函数,

代码语言:javascript
复制
parse = lambda x: dt.datetime.strptime(x, '%S')
content2 = pd.read_csv(current_file, parse_dates=['Time'], index_col=0, date_parser=parse)

但我好像犯了个错误:

代码语言:javascript
复制
ValueError: time data ' 0.000000000E+00' does not match format '%S'

但我解决不了。

有什么帮助吗?)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-18 13:26:09

代码语言:javascript
复制
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,然后将其添加到时间戳中。

代码语言:javascript
复制
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')]
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28584422

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档