我有一个 CSV 文件(下面的示例),我正在尝试将其加载到数据框中并让 Pandas 自动解析日期。
"http://www.example.com","http://example.com","test",2016-06-16,2016-02-21,4
Run Code Online (Sandbox Code Playgroud)
当我加载这个指定要解析的列的文件时,它们被成功加载为日期时间:
df = pd.read_csv(inputfile, parse_dates=[3,4])
Run Code Online (Sandbox Code Playgroud)
但是,我不知道这些日期将始终是第 3 列和第 4 列,因此我希望它尝试解析每一列并查看它是否是日期,这是我从pandas 文档中的理解,是通过以下方式完成的:
df = pd.read_csv(inputfile, parse_dates=True)
Run Code Online (Sandbox Code Playgroud)
但是,这会将第 3 列和第 4 列加载为对象。想必我误解了这一点。有没有正确的方法来做到这一点?我是否需要加载数据框然后尝试将每一列转换为日期?
(我在 Windows 10 上使用 Python 2.7.11 -- 64 位运行 Canopy)
parse_dates不会那样工作。如果传递 True,它将假定索引的类型为 datetime:
parse_dates :布尔值或整数或名称列表或列表或字典列表,默认为 False 布尔值。如果为 True -> 尝试解析索引。整数或名称列表。例如,如果 [1, 2, 3] -> 尝试将第 1、2、3 列解析为单独的日期列。列表列表。例如,如果 [[1, 3]] -> 合并第 1 列和第 3 列并解析为单个日期列。dict,例如 {'foo' : [1, 3]} -> 将第 1、3 列解析为日期并调用结果 'foo' 注意:iso8601 格式的日期存在快速路径。
对于您的情况,您需要明确说明要解析为日期的列。否则,您所有的数字列也可以转换为日期时间。
| 归档时间: |
|
| 查看次数: |
5401 次 |
| 最近记录: |