为何pd.to_datetime转换时分格式后显示默认日期?如何移除?
问题解答
原因分析
pandas的datetime类型是日期+时间的复合类型,必须同时包含日期和时间两个维度。当你只传入纯时间字符串(如"02:29")时,pandas会自动填充一个默认基准日期——1900-01-01,这是Python datetime模块的默认起始日期,用来补全datetime类型的完整性。
移除日期部分的三种方法
转为时间间隔类型(Timedelta):如果你的数据代表时长或独立时间点,用
pd.to_timedelta直接转换,结果仅保留时间维度:df["Time"] = pd.to_timedelta(df["Time"]) # 若要仅显示时间部分,可进一步处理 df["Time"] = df["Time"].astype(str).str.split().str[1]提取时间转为字符串:如果只需要纯时间格式的字符串,用
dt.strftime提取并格式化:df["Time"] = pd.to_datetime(df["Time"], format='%H:%M').dt.strftime('%H:%M') # 输出示例:"02:29",类型为字符串转为纯时间对象:提取datetime中的time属性,得到原生Python的
time对象,显示时仅展示时间:df["Time"] = pd.to_datetime(df["Time"], format='%H:%M').dt.time # 输出示例:datetime.time(2, 29),显示为"02:29"
内容的提问来源于stack exchange,提问作者drdarkfrancis
相关产品推荐
相关产品推荐

