Python 如何使用pandas.read\u csv将非字符串列解析为datetime
我的问题是:我有一个Python 如何使用pandas.read\u csv将非字符串列解析为datetime,python,pandas,datetime,Python,Pandas,Datetime,我的问题是:我有一个.csv文件,如下所示: TS,secs,degC,Pa,V,V,V,V,V,degC,% 2019-08-29 15:29:02.000,0.000,23.21,97707.95,2.37942,4.06958,1.16183,2.06545,2.16861,22.70,53.70, 2019-08-29 15:29:04.000,2.001,23.22,98000.81,2.30359,4.04178,1.15457,2.06375,2.16660,22.70,54.00
.csv
文件,如下所示:
TS,secs,degC,Pa,V,V,V,V,V,degC,%
2019-08-29 15:29:02.000,0.000,23.21,97707.95,2.37942,4.06958,1.16183,2.06545,2.16861,22.70,53.70,
2019-08-29 15:29:04.000,2.001,23.22,98000.81,2.30359,4.04178,1.15457,2.06375,2.16660,22.70,54.00,
我想做的是将第一列TS
解析为datetime,但在我的.csv
文件中,第一列不是字符串。我尝试的代码如下:
DATA = pd.read_csv('file.csv',sep=',',parse_dates=[0])
但我得到的错误是:
TypeError: 'NoneType' object has no attribute '__getitem__'
有没有办法使用pandas.read\u csv将不带“
的列解析为日期时间?我也对其他方法持开放态度,但最终的结果应该是一个pandas数据框架,第一列为datetime格式
提前感谢您。只需更改输入数据就可以了 (删除结尾处的逗号。) 数据: 如下所述:
df=pd.read_csv('file.csv', parse_dates=['TS'])
和df.dtypes
提供所需的输出
TS datetime64[ns]
secs float64
degC float64
Pa float64
V float64
V.1 float64
V.2 float64
V.3 float64
V.4 float64
degC.1 float64
% float64
dtype: object
只需更改输入数据即可按预期工作 (删除结尾处的逗号。) 数据: 如下所述:
df=pd.read_csv('file.csv', parse_dates=['TS'])
和df.dtypes
提供所需的输出
TS datetime64[ns]
secs float64
degC float64
Pa float64
V float64
V.1 float64
V.2 float64
V.3 float64
V.4 float64
degC.1 float64
% float64
dtype: object
这里的问题是,包含日期内容的第一列被解析为索引列。为了以datetime格式解析它,您需要执行以下操作:
DATA = pd.read_csv('file.csv', sep=',')
DATA.index = pd.to_datetime(DATA.index)
然后,索引列将采用日期时间格式:
DATA.index
DatetimeIndex(['2019-08-29 15:29:02', '2019-08-29 15:29:04'], dtype = 'datetime64[ns]', freq=None)
这里的问题是,包含日期内容的第一列被解析为索引列。为了以datetime格式解析它,您需要执行以下操作:
DATA = pd.read_csv('file.csv', sep=',')
DATA.index = pd.to_datetime(DATA.index)
然后,索引列将采用日期时间格式:
DATA.index
DatetimeIndex(['2019-08-29 15:29:02', '2019-08-29 15:29:04'], dtype = 'datetime64[ns]', freq=None)