【发布时间】:2016-11-02 14:56:49
【问题描述】:
在阅读文本文件时,我看到一种奇怪的格式,其中日期和时间包含在单独的列中,如下所示(文件是制表符作为分隔符)。
temp
room 1
Date Time simulation
Fri, 01/Jan 00:30 11.94
01:30 12
02:30 12.04
03:30 12.06
04:30 12.08
05:30 12.09
06:30 11.99
07:30 12.01
08:30 12.29
09:30 12.46
10:30 12.35
11:30 12.25
12:30 12.19
13:30 12.12
14:30 12.04
15:30 11.96
16:30 11.9
17:30 11.92
18:30 11.87
19:30 11.79
20:30 12
21:30 12.16
22:30 12.27
23:30 12.3
Sat, 02/Jan 00:30 12.25
01:30 12.19
02:30 12.14
03:30 12.11
etc.
我想:
通过两列解析日期和时间 (
[0],[1]);将所有时间戳提前 30 分钟,即将
:30替换为:00;
我使用了以下代码:
timeparse = lambda x: pd.datetime.strptime(x.replace(':30',':00'), '%H:%M')
df = pd.read_csv('Chart_1.txt',
sep='\t',
skiprows=1,
date_parser=timeparse,
parse_dates=['Time'],
header=1)
这似乎是解析时间而不是日期(显然,这是我告诉它要做的)。
此外,跳过行对于查找 Date 和 Time 标头很有用,但它会丢弃我需要的标头 temp 和 room 1。
【问题讨论】:
-
您的数据的
tabs副本存在问题 - 我不知道哪里有,哪里没有。是否可以通过 wetransfer、gdocs、dropbox 将您的样本归档并共享? -
或另一个问题 - 来自
5.第行的数据被正确解析为Time和simulation列而不是? -
@jezrael,我已将文件上传到 [dropbox.com/s/o1b7aa83s2mh0km/Chart_1.txt?dl=0] (dropbox)
标签: csv parsing datetime pandas time