dataframe读取excel日期列时,源数据日期如下["2022年7月3日期",2022/10/20,20-Oct-22,2023-03-21],希望读取后展示出的datafrmae也保持为源数据展示的样子,而不是都默认变成2022/10/20 0:00这种格式。请问该怎么做?能否给个例子
时间: 2023-06-04 19:08:16 浏览: 85
在dataframe两列日期相减并且得到具体的月数实例
5星 · 资源好评率100%
非常感谢您的提问。以下是针对您的问题的建议:
您可以使用 Pandas 库进行 DataFrame 读取并保持日期列格式。具体实现步骤如下:
1. 在读取 excel 文件时,指定日期列的格式。例如,您的日期列中包含三种不同的格式:["2022年7月3日期",2022/10/20,20-Oct-22,2023-03-21],您可以使用 Pandas 的 `read_excel` 函数来读取,同时指定日期列的格式为 `%Y年%m月%d日期`、`%Y/%m/%d`、`%d-%b-%y` 和 `%Y-%m-%d`,具体如下:
```
import pandas as pd
df = pd.read_excel("your_excel_file.xlsx",
parse_dates=[your_date_col_index],
date_parser=lambda x: pd.to_datetime(x, format="%Y年%m月%d日期")
or pd.to_datetime(x, format="%Y/%m/%d")
or pd.to_datetime(x, format="%d-%b-%y")
or pd.to_datetime(x, format="%Y-%m-%d"))
```
其中,`parse_dates` 参数用于指定需要解析为日期的列,`date_parser` 参数用于指定日期列的解析函数,如果解析失败则返回 `NaT`。
2. 对于读取后的 DataFrame 对象,您可以使用 `dt.strftime` 方法将日期列格式化为原始格式,例如:
```
df[your_date_col_name] = df[your_date_col_name].dt.strftime("%Y年%m月%d日期,%Y/%m/%d,%d-%b-%y,%Y-%m-%d")
```
其中,`your_date_col_name` 参数为您的日期列名。
希望这个回答可以帮助到您。如果您还有其他问题,可以继续提问。
阅读全文