csdfb['成交时间']列不是 21:12:20这种格式一率改为23:58:58秒,如何写python代码
时间: 2024-09-22 12:09:55 浏览: 45
如果你想将所有不符合 `21:12:20` 格式的时间统一替换为 `23:58:58`,可以使用列表推导式配合条件判断来实现。假设`csdfb`是一个Pandas DataFrame,且`成交时间`列存储的是时间字符串。以下是相应的Python代码:
```python
import pandas as pd
# 假设你的数据集是这样的
data = {'成交时间': ['12:34:56', '01:02:03', '21:12:20', '这不是时间', '20:45:30']}
csdfb = pd.DataFrame(data)
# 将时间格式转换为24小时制
csdfb['成交时间'] = pd.to_datetime(csdfb['成交时间'], errors='coerce').dt.strftime('%H:%M:%S')
# 将不符合格式的时间替换为23:58:58
csdfb.loc[~csdfb['成交时间'].str.match(r'\d{1,2}:\d{2}:\d{2}', na=False), '成交时间'] = '23:58:58'
# 查看结果
print(csdfb)
```
这段代码首先将时间列转换为datetime格式,然后检查是否符合`\d{1,2}:\d{2}:\d{2}`(即24小时制小时:分钟:秒)的正则表达式,不符合的行将其设置为'23:58:58'。
阅读全文