我正在尝试阅读一个只有2列的简单数据:id,timestamp
因为我的时间戳有几秒钟,所以我想保留这些信息。所以我读了许多文章,如:
Error when parsing timestamp with pandas read_csv
Reading a csv with a timestamp column, with pandas
Reading a csv with a timestamp column, with pandas
以及更多....
以下是我在阅读完所有内容后所拥有的内容: 我首先创建了一个简短的函数来帮助我解析时间戳数据,然后在调用read_csv()函数时使用它。
def dateparse (timestamp):
return pd.datetime.strptime(timestamp, '%Y-%m-%d %H:%M:%S')
data = pd.read_csv(os.path.join(base_dir, data_file),
parse_dates=True, date_parser=dateparse)
但是当我打印数据时,我仍然看不到秒! :(
print(data.head(3))
id timestamp_utc
0 9/1/17 1:24
1 9/1/17 1:24
2 9/1/17 1:24
任何帮助表示赞赏!
EDIT !!! 根据Jon的建议,我将代码更改为:
data = pd.read_csv(os.path.join(base_dir, data_file), parse_dates=['timestamp_utc'], date_parser=dateparse)
我会收到错误:
ValueError: time data '9/1/17 1:24' does not match format '%m/%d/%y %H:%M:%S'
但如果我不使用解析功能:
data = pd.read_csv(os.path.join(base_dir, data_file), parse_dates=['timestamp_utc'])
我的所有时间戳都有0秒:
print(data.head(3))
id timestamp_utc
0 9/1/17 1:24:00
1 9/1/17 1:24:00
2 9/1/17 1:24:00
编辑2: 以下是我的csv中数据的原貌:
0 24:31.8
1 24:31.9
2 24:32.3
3 24:32.5
这是之后的我更改时间戳数据格式(不推荐....)的方式:(在此处显示更多列以显示秒数不同)
0 9/1/17 1:24:32
1 9/1/17 1:24:32
2 9/1/17 1:24:32
3 9/1/17 1:24:32
4 9/1/17 1:24:33
5 9/1/17 1:24:33
6 9/1/17 1:24:35
7 9/1/17 1:24:35
8 9/1/17 1:24:36
9 9/1/17 1:24:37
10 9/1/17 1:24:38
11 9/1/17 1:24:40