我在想,有没有比我更聪明的人能看出我做错了什么.

我使用正则表达式映射日期格式,并希望将日期转换为"%Y-%m-%d"

当测试"%Y-%m-%d %H:%M:%S"时,我的日期转换不正确.有没有人看到我做错了什么?我不知道如何处理剩余的未转换数据.

以下是测试代码,供您参考.

from datetime import datetime
import re
import pandas as pd


def conv_date(dte: str) -> datetime: #actul is datetime
    acceptable_mappings = {
        "\d{4}-\d{2}-\d{2}": "%Y-%m-%d",
        "\d{4}-\d{2}-\d{2}\s\d{2}\:\d{2}\:\d{2}": "%Y-%m-%d %H:%M:%S",

    }
    for regex in acceptable_mappings.keys():
        if re.match(regex, dte):
            return datetime.strptime(dte, acceptable_mappings[regex])
    raise Exception(f"Expected date in one of supported formats, got {dte}")


def full_list_parse(unclean_list: list) -> list:
    return [conv_date(dte) for dte in unclean_list]


mock_dict = [
    {"name": "xx", "role": "loves only-fans", "date": "2023-07-26 12:46:21"},
    {"name": "dz", "role": "legend", "date": "2023-07-26"},

]

df = pd.DataFrame(mock_dict)

if __name__ == "__main__":
    print(df)
    df['date_clean'] = df['date'].apply(lambda x: conv_date(x))
    print(df)

我的结果是:

ValueError: unconverted data remains:  12:46:21
  name             role                 date
0   xx  loves only-fans  2023-07-26 12:46:21
1   dz           legend           2023-07-26

我想要的结果是:

  name             role                 date
0   xx  loves only-fans           2023-07-26
1   dz           legend           2023-07-26

推荐答案

你可以先试一下pd.to_datetime:

df['date'] = pd.to_datetime(df['date'], format='mixed', dayfirst=False)

df['only_date'] = df['date'].dt.date
print(df)

打印:

  name             role                date   only_date
0   xx  loves only-fans 2023-07-26 12:46:21  2023-07-26
1   dz           legend 2023-07-26 00:00:00  2023-07-26

Python相关问答推荐

GL pygame无法让缓冲区与vertextPointer和colorPointer一起可靠地工作

如何使用Python将工作表从一个Excel工作簿复制粘贴到另一个工作簿?

在Python中处理大量CSV文件中的数据

ModuleNotFound错误:没有名为Crypto Windows 11、Python 3.11.6的模块

Python上的Instagram API:缺少client_id参数"

对整个 pyramid 进行分组与对 pyramid 列子集进行分组

非常奇怪:tzLocal.get_Localzone()基于python3别名的不同输出?

如何使用pytest来查看Python中是否存在class attribution属性?

如何在给定的条件下使numpy数组的计算速度最快?

在Python argparse包中添加formatter_class MetavarTypeHelpFormatter时, - help不再工作""""

连接一个rabrame和另一个1d rabrame不是问题,但当使用[...]'运算符会产生不同的结果

让函数调用方程

pandas:在操作pandora之后将pandora列转换为int

为罕见情况下的回退None值键入

Python OPCUA,modbus通信代码运行3小时后出现RuntimeError

我怎么才能用拉夫分拣呢?

Polars时间戳同步延迟计算

Django抛出重复的键值违反唯一约束错误

对数据帧进行分组,并按组间等概率抽样n行

如果服务器设置为不侦听创建,则QWebSocket客户端不连接到QWebSocketServer;如果服务器稍后开始侦听,则不连接