如何为Pandas DataFrame的TimeStamp列手动添加00:00:00时间值
解决方案
嘿,这个需求我经常碰到,给你几个实用的方案,按需选择就行:
方法1:转换为Datetime类型(推荐)
如果你的TimeStamp列是字符串或纯日期格式,直接用pd.to_datetime()转换为Pandas的datetime类型,它会自动给没有时分秒的日期补上00:00:00,而且后续还能方便地做时间相关的运算:
import pandas as pd # 示例DataFrame df = pd.DataFrame({'TimeStamp': ['2017-01-01', '2017-01-02']}) # 转换列类型 df['TimeStamp'] = pd.to_datetime(df['TimeStamp']) # 验证结果 print(df['TimeStamp']) # 输出会是: # 0 2017-01-01 00:00:00 # 1 2017-01-02 00:00:00 # Name: TimeStamp, dtype: datetime64[ns]
这种方法的好处是保留了datetime类型,后续排序、筛选、计算时间差都很方便。
方法2:格式化为带时分秒的字符串(仅展示场景)
如果你只是需要把日期显示成带00:00:00的字符串,不需要后续时间操作,可以用dt.strftime()格式化:
# 先确保列是datetime类型(如果不是的话先转) df['TimeStamp'] = pd.to_datetime(df['TimeStamp']) # 格式化为字符串 df['TimeStamp'] = df['TimeStamp'].dt.strftime('%Y-%m-%d %H:%M:%S') # 验证结果 print(df['TimeStamp']) # 输出会是: # 0 2017-01-01 00:00:00 # 1 2017-01-02 00:00:00 # Name: TimeStamp, dtype: object
⚠️ 注意:这种方法会把列变成字符串类型,之后就不能直接做时间运算了,所以只适合纯展示的需求。
额外小技巧
如果不想修改原DataFrame,可以用assign()方法生成新列:
df_new = df.assign(TimeStamp=pd.to_datetime(df['TimeStamp']))
内容的提问来源于stack exchange,提问作者CodeForJoy
相关产品推荐
相关产品推荐

