本文介绍了如何在python中加载带有日期和时间的文件作为datetime对象?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
需要使用第一个列中的日期和第二个列中的HH:MM
加载此文件.
need to load this file with date in first col and HH:MM
in second col.
它如何与 numpy.genfromtxt()
一起使用?也许是熊猫?
How does it work with a numpy.genfromtxt()
? Maybe pandas?
我的文件如下:
2017-Feb-11 00:00 m 4.87809 1.86737 5.04236 0.27627 1.5995
2017-Feb-11 00:05 m 4.86722 1.86711 5.00023 0.27616 1.5965
2017-Feb-11 00:10 m 4.85641 1.86690 4.95810 0.27604 1.5941
推荐答案
In [32]: df = pd.read_csv(filename, delim_whitespace=True, parse_dates=[0], header=None)
In [33]: df[1] = pd.to_timedelta(df[1] + ':00')
In [34]: df
Out[34]:
0 1 2 3 4 5 6 7
0 2017-02-11 00:00:00 m 4.87809 1.86737 5.04236 0.27627 1.5995
1 2017-02-11 00:05:00 m 4.86722 1.86711 5.00023 0.27616 1.5965
2 2017-02-11 00:10:00 m 4.85641 1.86690 4.95810 0.27604 1.5941
In [35]: df.dtypes
Out[35]:
0 datetime64[ns]
1 timedelta64[ns]
2 object
3 float64
4 float64
5 float64
6 float64
7 float64
dtype: object
PS,在熊猫中没有日期成分的情况下,您无法拥有datetime
dtype-这就是为什么我将其转换为timedelta
dtype的原因.或者,您可以将前两列合并为一个datetime
列:
PS you can't have datetime
dtype without a date component in Pandas - that's why I've converted it to timedelta
dtype. Alternatively you could combine first two columns in a single datetime
column:
In [29]: df['date'] = pd.to_datetime(df.pop(0) + ' ' + df.pop(1) + ':00')
In [30]: df
Out[30]:
2 3 4 5 6 7 date
0 m 4.87809 1.86737 5.04236 0.27627 1.5995 2017-02-11 00:00:00
1 m 4.86722 1.86711 5.00023 0.27616 1.5965 2017-02-11 00:05:00
2 m 4.85641 1.86690 4.95810 0.27604 1.5941 2017-02-11 00:10:00
In [31]: df.dtypes
Out[31]:
2 object
3 float64
4 float64
5 float64
6 float64
7 float64
date datetime64[ns]
dtype: object
这篇关于如何在python中加载带有日期和时间的文件作为datetime对象?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!