Python中object类型日期时间列的转换与过滤方法求助
解决方案
核心结论
必须先将Timestamp列从object类型转换为datetime类型。字符串(object)无法直接进行日期逻辑比较,只有转为datetime类型后,才能高效完成日期筛选、提取日期部分等操作。
完整步骤与代码示例
假设你的DataFrame名为df,以下是具体操作:
- 转换Timestamp列为datetime类型
import pandas as pd # 创建示例DataFrame(匹配你提供的数据) data = { 'Timestamp': ['8/21/2023 12:00:00 AM', '11/22/2023 12:00:00 AM', '3/7/2022 12:00:00 AM'], 'Value': ['a', 'b', 'c'] } df = pd.DataFrame(data) # 转换为datetime类型 df['Timestamp'] = pd.to_datetime(df['Timestamp'])
- 提取日期部分(移除时间)
有两种常用方式:
- 方式一:保留datetime类型(仅去除时间,日期仍为datetime格式)
df['Timestamp'] = df['Timestamp'].dt.normalize() # 等价于 df['Timestamp'].dt.floor('D')
- 方式二:转为字符串格式的日期(如
YYYY-MM-DD)
df['Timestamp'] = df['Timestamp'].dt.strftime('%Y-%m-%d')
- 筛选2022年6月1日之前的数据
推荐基于datetime类型列进行筛选(逻辑更严谨):
filtered_df = df[df['Timestamp'] < pd.Timestamp('2022-06-01')]
最终结果
执行上述操作后,filtered_df的输出为:
Timestamp Value 0 2022-03-07 c
内容的提问来源于stack exchange,提问作者aditya tandel
相关产品推荐
相关产品推荐

