如何以dayfirst条件读取excel?

Col*_*ien 5 python pandas

我正在尝试通过 pandas 读取 excel。我有一个格式为 DD/MM/YYYY 的日期列。Pandas 会自动将其读取为月份第一,据我所知,没有像 read_csv 那样的 dayfirst 函数。有没有办法在指定日期格式的同时执行 read_excel ?

xlxs_data = pd.DataFrame()
df = pd.read_excel('new.xlsx')
xlsx_data = xlxs_data.append(df, ignore_index=True, dayfirst=True)

TypeError: append() got an unexpected keyword argument 'dayfirst'
Run Code Online (Sandbox Code Playgroud)

Cam*_*Cam 7

周界在 pandas 1.1.4 版本中dayfirst不起作用。read_excel文档指出“对于非标准日期时间解析,请在 pd.read_excel 之后使用 pd.to_datetime”。

所以读入你的数据

df = pd.read_excel('new.xlsx', engine="openpyxl")
Run Code Online (Sandbox Code Playgroud)

然后用这个

pd.to_datetime(df['col_name'], dayfirst=True)
Run Code Online (Sandbox Code Playgroud)

或这个

pd.to_datetime(df['col_name'], format='%d/%m/%Y')
Run Code Online (Sandbox Code Playgroud)

有关格式代码的一些信息可以在这里找到https://docs.python.org/3/library/datetime.html#strftime-and-strptime-behavior

请记住,Pandas 以 ISO 格式 YYYY-MM-DD 显示日期。如果要转换为不同的格式,则需要将日期时间对象转换为字符串。但如果这样做,您将失去日期时间对象的所有功能,因此最好在导出期间执行此操作。

PANDAS 2 更新

这个答案对于 Pandas 2.0.3 仍然适用

但自从 Pandas 2.0pd.read_excel现在有了一个date_format可能有效的参数。但文档确实说“对于任何更复杂的内容,请作为对象读入,然后to_datetime()根据需要应用。” 所以使用时可能会有一些限制date_format


EdC*_*ica 2

您可以将dayfirst=True其作为参数传递给read_excel,尽管文档没有声明这是它可以识别的参数,但它接受 kwargs 并将解决您的问题:

df = pd.read_excel('new.xlsx', dayfirst=True) 
Run Code Online (Sandbox Code Playgroud)

  • 不幸的是,在 1.1.0 版本中这是不可能的。 (8认同)