Python Pandas:如何拆分CSV中日期时间合并列?
解决CSV中YYmmddHHmmss格式日期时间列拆分问题
你遇到的问题核心是目标列属于数值类型,无法直接调用字符串处理方法,下面提供两种实用的解决思路:
方法一:字符串截取拼接
先把数值列转为字符串,再按固定位置截取日期和时间部分,最后拼接成需要的格式:
import pandas as pd CSVPath = "/Desktop/Test Data.csv" data = pd.read_csv(CSVPath) # 替换成你CSV中实际的日期时间列名 target_col = "你的列名" # 将数值列转为字符串 data['temp_str'] = data[target_col].astype(str) # 生成格式为「YYYY MM DD」的日期列 data['date'] = data['temp_str'].str[:4] + ' ' + data['temp_str'].str[4:6] + ' ' + data['temp_str'].str[6:8] # 生成格式为「HH:MM:SS」的时间列 data['time'] = data['temp_str'].str[8:10] + ':' + data['temp_str'].str[10:12] + ':' + data['temp_str'].str[12:14] # 移除临时字符串列(可选操作) data = data.drop('temp_str', axis=1) print(data)
方法二:利用datetime类型转换(更推荐)
借助pandas的to_datetime方法直接解析数值为datetime对象,再提取日期和时间并格式化,这种方法能自动校验格式合法性:
import pandas as pd CSVPath = "/Desktop/Test Data.csv" data = pd.read_csv(CSVPath) # 替换成你CSV中实际的日期时间列名 target_col = "你的列名" # 将数值列解析为datetime类型 data['datetime_obj'] = pd.to_datetime(data[target_col], format='%Y%m%d%H%M%S') # 生成指定格式的日期列 data['date'] = data['datetime_obj'].dt.strftime('%Y %m %d') # 生成指定格式的时间列 data['time'] = data['datetime_obj'].dt.strftime('%H:%M:%S') # 移除临时datetime列(可选操作) data = data.drop('datetime_obj', axis=1) print(data)
注意事项
- 务必替换代码中的
"你的列名"为CSV中实际的日期时间列名称 - 方法二如果遇到不符合
YYmmddHHmmss格式的数值,会生成NaT(缺失时间值),方便排查异常数据
内容的提问来源于stack exchange,提问作者MediterraneanCoder
相关产品推荐
相关产品推荐

