目前我正在使用熊猫来读取一个csv文件到DataFrame
,使用第一列作为索引。第一列是在ISO 8601格式,所以根据用于read_csv的文档,但应认识为datetime:熊猫read_csv不识别ISO8601作为日期时间dtype
In [1]: import pandas as pd
In [2]: df = pd.read_csv('data.csv', index_col=0)
In [3]: print df.head()
U V Z Ubar Udir
2014-11-01 00:00:00 0.73 -0.81 0.46 1.0904 317.97
2014-11-01 01:00:00 1.26 -1.50 0.32 1.9590 319.97
2014-11-01 02:00:00 1.50 -1.80 0.13 2.3431 320.19
2014-11-01 03:00:00 1.39 -1.65 0.03 2.1575 319.89
2014-11-01 04:00:00 0.94 -1.08 -0.03 1.4318 318.96
然而,查询索引D型细胞时,它返回“对象”:
In [4]: print df.index.dtype
object
我那么必须手动将其转换为datetime D型:
In [5]: df.index = pd.to_datetime(df.index)
In [6]: print df.index.dtype
datetime64[ns]
有什么办法可以自动调用有当设置日期时间D型指数?
你不告诉它解析列日期时间'DF = pd.read_csv( 'data.csv',parse_dates = 0,index_col = 0)' – EdChum 2014-12-03 16:32:46
是的,这是诀窍!出于某种原因,当我阅读'read_csv'的文档时,我认为'parse_dates'默认为'True',可能来自阅读:“If True - >尝试解析索引” – 2014-12-04 08:43:53
我一直发现'read_csv'的这个方面docs是不明确的,可能是不正确的,我总是必须通过整数索引,注意如果你想解析多列,像这样:'parse_dates = [0,3,4]'和嵌套列出您是否希望它将多个列解析为单个日期时间col:'parse_dates = [[0,1]]'。所以我注意到,设置'parse_dates = True'不起作用,所以我总是通过一个列表或单个int列索引 – EdChum 2014-12-04 09:02:30