python - 在 python pandas 中将对象转换为日期时间戳。天没有前导零的地方
问题描述
我似乎无法将此数据框列转换为日期时间戳。
Date_Last_Modified
2021 年 1 月 1 日下午 7:36:32 2021 年
1 月 11 日下午 7:36:32... 等
dtype 是一个对象,%e 不起作用,%-d 也不起作用。这是我的命令。
df['Date_Last_Modified'] = pd.to_datetime(df['Date_Last_Modified'], format='%B %d %Y %I:%M:%S %p')
这是错误
ValueError: time data 'Date Last Modified' does not match format '%B %d %Y %I:%M:%S %p' (match)
或者
df['Date_Last_Modified'] = pd.to_datetime(df['Date_Last_Modified'], format='%B %e %Y %I:%M:%S %p')
ValueError: 'e' is a bad directive in format '%B %e %Y %I:%M:%S %p'
解决方案
您可以过滤“Date_Last_Modified”列中的错误值,如下所示:
FMT = '%B %d %Y %I:%M:%S %p'
col = 'Date_Last_Modified'
errors_values = (df[pd.to_datetime(df[col], format=FMT, errors='coerce').isna()]).values
df = df[~df[col].apply(lambda x: x in errors_values)]
在此之后,你不应该有同样的错误。
df['Date_Last_Modified'] = pd.to_datetime(df['Date_Last_Modified'], format='%B %d %Y %I:%M:%S %p')
推荐阅读
- c# - 如何在 C# 中使用特殊语言创建文件名?
- visual-studio-code - linux mint 上的 Vscode 多行编辑/选择
- c - 使用哈希表对 ascii 代码中的所有字母进行简单加密
- c++ - decltype(1, t) 应该是左值引用吗?(编译器不同意)
- r - 数据框中列的奇数类型
- linux - 不支持 TCP_USER_TIMEOUT 套接字选项
- amazon-web-services - 如何从 AMQ 迁移到 SQS
- python - 有条件的取值
- c# - 使用 NetTopologySuite 计算点(纬度,经度)之间的距离
- firebase - 如何从 firebase 将单个图像 url 串到我的颤振应用程序?