Pandas read_csv parse_dates = true缺少日期列

时间:2016-12-03 23:27:55

标签: python csv pandas

我有一个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)

1 个答案:

答案 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格式的日期存在快速路径。

对于您的情况,您需要明确说明要将哪个列解析为日期。否则,您的所有数字列也可以转换为日期时间。