Python 从Excel文件解析熊猫中的日期时强制设置格式
我正在尝试按照给定格式分析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
%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中的数据时,我不能强制使用给定的格式吗?