如何将数据集中含日期时间的列拆分为日期、时间两个独立列
复合日期时间列拆分实现方案
所有待拆分列均为「日期内容+空白分隔符+时间内容」的固定结构,直接按分隔符切分即可得到独立的日期、时间列,无需复杂格式解析。
Pandas 批量处理实现(适配数据集处理场景)
- 加载数据集
import pandas as pd # 替换为你实际的数据集A文件路径 A = pd.read_csv("数据集A.csv")
- 配置待拆分列列表
把所有需要拆分的混合日期时间列名放入列表,例如本次拆分Cat列:target_split_cols = ["Cat"] - 执行拆分
for col_name in target_split_cols: # 匹配连续空白字符做单次拆分,兼容原数据中的多余空格、制表符间隔 A[[f"{col_name}1", f"{col_name}2"]] = A[col_name].str.split(r"\s+", n=1, expand=True)
执行完成后自动生成Cat1列存储纯日期内容、Cat2列存储纯时间内容,和示例的目标输出完全一致。
可选调整操作
- 不需要保留原始混合列时,可执行删除操作:
A = A.drop(columns=target_split_cols) - 需要将字符串格式的日期、时间转为对应数据类型(而非纯文本存储)时,追加转换代码:
# 日期列转为date类型 A[f"{col_name}1"] = pd.to_datetime(A[f"{col_name}1"]).dt.date # 时间列转为time类型 A[f"{col_name}2"] = pd.to_datetime(A[col_name]).dt.time - 存在拆分失败的异常空值行时,可执行清洗:
A = A.dropna(subset=[f"{col_name}1", f"{col_name}2"])
内容的提问来源于stack exchange,提问作者Pep
相关产品推荐
相关产品推荐

