Rog*_*o77 6 python csv date-parsing pandas
我正在阅读德语日期格式的csv文件.看起来它在这篇文章中运作正常:
但是,似乎在我的情况下,日期不被认可.我在测试文件中找不到任何错误的字符串.
import pandas as pd
import numpy as np
%matplotlib inline
import matplotlib.pyplot as plt
from matplotlib import style
from pandas import DataFrame
style.use('ggplot')
df = pd.read_csv('testdata.csv', dayfirst=True, parse_dates=True)
df[:5]

这导致:

因此,具有日期的列不会被识别.我在这做错了什么?或者这种日期格式是不兼容的?
unu*_*tbu 12
如果您使用,parse_dates=True则read_csv尝试将索引解析为日期.因此,您还需要将第一列声明为索引index_col=[0]:
In [216]: pd.read_csv('testdata.csv', dayfirst=True, parse_dates=True, index_col=[0])
Out[216]: 
            morgens  mittags  abends
Datum                               
2015-03-16      382      452     202
2015-03-17      288      467     192
或者,如果您不希望该Datum列成为索引,则可以使用
 parse_dates=[0]  显式告知read_csv  将第一列解析为日期:
In [217]: pd.read_csv('testdata.csv', dayfirst=True, parse_dates=[0])
Out[217]: 
       Datum  morgens  mittags  abends
0 2015-03-16      382      452     202
1 2015-03-17      288      467     192
引擎盖read_csv用于dateutil.parser.parse解析日期字符串:
In [218]: import dateutil.parser as DP
In [221]: DP.parse('16.03.2015', dayfirst=True)
Out[221]: datetime.datetime(2015, 3, 16, 0, 0)
由于dateutil.parser在DD.MM.YYYY格式化时解析日期字符串没有问题,因此您不必在此处声明自定义日期解析器.