Pee*_*ker 5 python datetime pandas
目前,我正在使用熊猫DataFrame将第一列作为索引将csv文件读入。第一列为 ISO 8601格式,因此根据read_csv的文档,应将其识别为日期时间:
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
Run Code Online (Sandbox Code Playgroud)
但是,在查询索引dtype时,它返回'object':
In [4]: print df.index.dtype
object
Run Code Online (Sandbox Code Playgroud)
然后,我必须手动将其转换为datetime dtype:
In [5]: df.index = pd.to_datetime(df.index)
In [6]: print df.index.dtype
datetime64[ns]
Run Code Online (Sandbox Code Playgroud)
有什么方法可以在调用时自动将索引设置为datetime dtype read_csv()?
read_csv文档描述了 parse_dates 参数:
\n\n\n\n\nparse_dates :布尔值、整数列表、名称列表、列表列表或字典列表,默认 False
\n
\n - 布尔值。如果 True -> 尝试解析索引。
\n - 整数或名称列表。例如,如果 [1, 2, 3] -> 尝试将第 1、2、3 列分别解析为单独的日期列。
\n - 列表的列表。例如,如果 [[1, 3]] -> 合并第 1 列和第 3 列并解析为单个日期列。
\n - dict,例如 {\xe2\x80\x98foo\xe2\x80\x99 : [1, 3]} -> 将第 1、3 列解析为日期并调用结果 \xe2\x80\x98foo\xe2\x80\x99
\n 注意:对于 iso8601 格式的日期存在快速路径。
由于您想解析索引,您可以使用:
\n\n import pandas as pd\n df = pd.read_csv(\'data.csv\', index_col=0, parse_dates=True)\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
3532 次 |
| 最近记录: |