我有一个CSV文件(例如下面的代码),我试图加载到数据框中并让pandas自动解析日期。
"http://www.example.com","http://example.com","test",2016-06-16,2016-02-21,4
当我加载此文件指定要解析的列时,它们会成功加载为日期时间:
df = pd.read_csv(inputfile, parse_dates=[3,4])
但是我不知道这些日期总是第3列和第3列。 4,所以我希望它尝试解析每一列,看看它是否是一个日期,我对pandas docs的理解是,这是通过以下方式实现的:
df = pd.read_csv(inputfile, parse_dates=True)
然而,这会加载第3列和第3列。 4作为对象。据推测,我误解了这一点。有没有正确的方法来做到这一点?我是否需要加载数据框,然后尝试将每列转换为日期?
(我在Windows 10上使用Python 2.7.11 - 64位运行Canopy)
答案 0 :(得分:3)
parse_dates
不起作用。如果传递True,则会假定索引的类型为datetime:
parse_dates:boolean或整数或名称列表或列表或列表 dict,默认为False boolean。如果为True - >尝试解析索引。清单 整数或名称。例如如果[1,2,3] - >尝试解析每列1,2,3 作为单独的日期列。列表清单。例如如果[[1,3]] - >结合 第1列和第3列,并解析为单个日期列。 dict,例如{'foo': [1,3]} - >将列1,3解析为日期并调用结果'foo'注意:A iso8601格式的日期存在快速路径。
对于您的情况,您需要明确说明要将哪个列解析为日期。否则,您的所有数字列也可以转换为日期时间。