Python 点格式日期

Python 点格式日期,python,pandas,datetime-format,Python,Pandas,Datetime Format,我想得到一个名为Datetime的列,在Datetime格式中输入28.4.2014 12:20:49。当我这样做的时候 df = pd.read_csv('LOG.TXT', delim_whitespace=True, names=['Datetime', 'x']) df['Datetime'] = pd.to_datetime(df['Datetime']) print(df['Datetime']) 我得到28.4.2014-05-30 12:20:49 因为熊猫不解析点格式。最好的

我想得到一个名为Datetime的列,在Datetime格式中输入
28.4.2014 12:20:49
。当我这样做的时候

df = pd.read_csv('LOG.TXT', delim_whitespace=True, names=['Datetime', 'x'])
df['Datetime'] = pd.to_datetime(df['Datetime'])
print(df['Datetime'])
我得到
28.4.2014-05-30 12:20:49

因为熊猫不解析点格式。最好的解决方案是什么?

通常熊猫应该能够自动解析这个,因此我认为您的阅读出现了问题:datetimes中有一个空格,但您也使用空格作为分隔符,因此它会将日期和时间放在不同的列中

为了说明这一点:

In [67]: s = """28.4.2014 12:20:49 1
   ....: 29.4.2014 12:20:49 2"""

In [68]: from StringIO import StringIO 

In [69]: df = pd.read_csv(StringIO(s), delim_whitespace=True, names=['Datetime', 'x'])

In [70]: df
Out[70]: 
           Datetime  x
28.4.2014  12:20:49  1
29.4.2014  12:20:49  2

In [71]: df['Datetime'][0]
Out[71]: '12:20:49'

In [72]: pd.to_datetime(df['Datetime'][0])
Out[72]: Timestamp('2014-05-30 12:20:49')
日期被设置为索引,时间在
Datetime
列中。当使用
将此时间转换为_datetime
时,它将使用今天的日期

为了解决这个问题,有一种可能性(我把它读成三列,并用
parse_dates=[['Date','time']]
将这两列一起解析为一个datetime):


但是,如果您有更特殊的格式,则始终可以使用
格式
关键字:

In [66]: pd.to_datetime("28.4.2014 12:20:49", format="%d.%m.%Y %H:%M:%S")
Out[66]: Timestamp('2014-04-28 12:20:49')
In [66]: pd.to_datetime("28.4.2014 12:20:49", format="%d.%m.%Y %H:%M:%S")
Out[66]: Timestamp('2014-04-28 12:20:49')