【发布时间】:2021-01-19 08:33:45
【问题描述】:
我有一个包含一列日期的数据框,不幸的是我的导入(使用 read_excel)引入了日期格式作为日期时间,并将 Excel 日期作为整数。
我正在寻找的是一个日期仅格式为 %Y-%m-%d 的列
根据研究,excel 从 1900-01-00 开始,所以我可以添加这些整数。我尝试使用 str.extract 和正则表达式将列分成两列,一个是日期时间,另一个是整数。但是结果是 NaN。
这是一个输入代码示例
df = pd.DataFrame({'date_from': [pd.Timestamp('2022-09-10 00:00:00'),44476, pd.Timestamp('2021-02-16 00:00:00')], 'date_to': [pd.Timestamp('2022-12-11 00:00:00'),44455, pd.Timestamp('2021-12-16 00:00:00')]})
尝试首先通过提取整数来分隔列(从 MS excel 导入的日期)
df.date_from.str.extract(r'(\d\d\d\d\d)')
但是这给出了 NaN。
我试图将整数从列中分离出来的原因是,在尝试对混合列中的 excel 日期执行操作时出现错误(换句话说,使用以下代码会出错:)
def convert_excel_time(excel_time):
return pd.to_datetime('1900-01-01') + pd.to_timedelta(excel_time,'D')
关于如何仅获取一列日期的任何指导?我发现 pandas 和 python 的日期时间模块和方面是最令人沮丧的!
谢谢
【问题讨论】: