如何从Pandas DataFrame的timestamp时间戳列提取仅日期部分
解法
你可以通过以下两种常用方式实现需求:
方法1:直接字符串切片(适合timestamp列为字符串类型的场景)
直接用Pandas自带的字符串访问器str对每一行做切片取前10位即可,代码如下:
# 直接得到你要的结果序列 date_series = df['timestamp'].str[:10] # 如果需要新增列存储结果 df['date'] = df['timestamp'].str[:10]
如果不确定列类型,怕非字符串格式报错,可以先统一转成字符串再切片,兼容性更强:
date_series = df['timestamp'].astype(str).str[:10]
方法2:转datetime类型后提取(适合后续还要做时间运算的场景)
如果后续还要基于时间列做筛选、计算差值等操作,建议先把该列转成Pandas的datetime格式,再提取日期部分:
# 转换列类型为datetime df['timestamp'] = pd.to_datetime(df['timestamp']) # 提取日期后转成字符串,得到目标格式 date_series = df['timestamp'].dt.date.astype(str)
两种方法输出的结果都和你要求的格式一致:
0 2017-06-04 1 2017-06-04 2 2017-06-04 3 2017-06-04 4 2017-06-04
内容的提问来源于stack exchange,提问作者Muhammed Erem
相关产品推荐
相关产品推荐

