如何将datetime64[ns]转换为Timestamp对象?Excel日期兼容问题
解决datetime64[ns] Series转Timestamp对象的问题
你的问题核心不是类型转换,而是**firstDate是一个pandas Series对象**(整体dtype显示为datetime64[ns]),而你手动创建的secondDate是单个Timestamp实例——你的目标函数只能处理单个Timestamp,无法处理Series集合。
下面两种方法可以解决:
方法1:从已有的Series中提取单个Timestamp
因为Series里的每个元素本身就是Timestamp,只是整体类型标注为datetime64[ns],直接用.iloc[0]取出第一个元素即可:
df = pd.read_excel('data.xlsx', sheet_name="data") firstDate = pd.to_datetime(df[df["column"] == "date"]["end"], format='%Y-%m-%d').iloc[0] # 此时firstDate就是Timestamp('2020-11-01 00:00:00')
方法2:读取时直接获取单个Timestamp
先定位到目标行的单个值,再转换为datetime,一步到位得到Timestamp:
df = pd.read_excel('data.xlsx', sheet_name="data") # 先筛选行并取单个值,再转日期 target_date_str = df.loc[df["column"] == "date", "end"].iloc[0] firstDate = pd.to_datetime(target_date_str, format='%Y-%m-%d')
验证一下:执行后打印firstDate,会和secondDate一样显示为Timestamp('2020-11-01 00:00:00'),就能正常被你的函数处理了。
内容的提问来源于stack exchange,提问作者whitepanda
相关产品推荐
相关产品推荐

