Python 从Excel文件解析熊猫中的日期时强制设置格式

Python 从Excel文件解析熊猫中的日期时强制设置格式,python,excel,pandas,date,Python,Excel,Pandas,Date,我正在尝试按照给定格式分析Excel文件中的日期%d/%m/%y。我无法设置格式,我总是得到%m/%d/%Y 源格式为%d/%m/%y,因此第一个日期应为2016年6月1日。有什么办法吗 import pandas as pd url = 'https://www.dropbox.com/s/8gqmq3jx27unsta/example_dates.xlsx?dl=1' file = pd.ExcelFile(url, parse_date=True, date_parse

我正在尝试按照给定格式分析Excel文件中的日期
%d/%m/%y
。我无法设置格式,我总是得到
%m/%d/%Y

源格式为
%d/%m/%y
,因此第一个日期应为2016年6月1日。有什么办法吗

import pandas as pd

url = 'https://www.dropbox.com/s/8gqmq3jx27unsta/example_dates.xlsx?dl=1'

file = pd.ExcelFile(url, parse_date=True, 
       date_parser = (lambda x: pd.to_datetime(x, format ='%d/%m/%y')))

df = file.parse(0)

df
    date    variable
0   2016-01-06  1
1   2016-06-07  2
2   2016-12-10  3
3   2016-12-29  4
类似的方法可能会奏效,但不会:

df = file.parse(0, converters={'date' : lambda x: pd.to_datetime(x, dayfirst=True)}

date    variable
0   2016-01-06  1
1   2016-06-07  2
2   2016-12-10  3
3   2016-12-29  4

实际上,熊猫有一种显示datetime对象的格式

因此,它将以该格式显示,直到您更改该格式为止

同时,您可以执行以下操作:

df['date1'] = df['date'].dt.strftime('%d/%m/%y')
输出:

        date    variable    date1
0   2016-01-06  1   06/01/16
1   2016-06-07  2   07/06/16
2   2016-12-10  3   10/12/16
3   2016-12-29  4   29/12/16

您可以使用
转换器

>>> file.parse(0, parse_dates=True, index_col=0, date_parser=lambda x: pd.to_datetime(x).strftime("%d/%m/%Y"))

     variable
date    
2016-06-01  1
2016-07-06  2
2016-10-12  3
2016-12-29  4

@Mandy8055在应用
pd.to_datetime(df.Date,dayfirst=True)
您知道在没有变量名的情况下如何操作吗?您应该能够使用
0
或该列的任何索引作为键。所以
converters={0:lambda x…}
例如,第一个日期是2016年6月1日(2016年6月1日),但我得到的是1月6日,对吗?即使a改变了格式。是的,在这种格式中,它将显示为1月6日。至少对于这些数字来说,没有办法自动检测出它是否错了。人类甚至不知道他们错了。您必须进入并手动更改它。在读取R中的数据时,我不能强制使用给定的格式吗?