如何使用 Python 对一长串以逗号分隔的串联日期和时间戳重新排序?

How do I reorder a long string of concatenated date and timestamps seperated by commas using Python?

我有一个名为 'datetimes' 的字符串类型列,其中包含多个日期及其时间戳,我正在尝试将最早和最后的日期(没有时间戳)提取到名为 [=32= 的新列中] 和 'last date'.

然而,问题在于日期没有按顺序排列,因此它不像使用 str.split() 方法获取字符串中的第一个和最后一个日期那样简单。我需要先按升序排列。

这是其中一行的条目示例:2022-04-13 04:47:00,2022-04-07 01:58:00,2022-03-31 02:32:00, 2022-03-25 11:59:00,2022-04-12 05:07:00,2022-03-29 01:46:00,2022-03-31 05:52:00,

如您所见,顺序是随机的。我想首先删除幸运的是在空格和逗号之间的时间戳,然后按升序排列日期,最后将最大和最小日期放入两个单独的列中。

谁能帮帮我?提前致谢:)

`df['Campaign Interaction Dates'] = df['Campaign Interaction Dates'].str.replace('/','-')

def 归一化(d): 如果 len(t := d.split('-')) == 3: return d if len(t[0]) == 4 else '-'.join(reversed(t)) return '9999-99-99'

out = sorted(normalise(t[:10]) for t in str(df[df['Campaign Interaction Dates']]).split(',') if t)

df['out'] = out[1]

打印(显示(df[df['Number of Campaign Codes registered']==3]))`

string = "2022-04-13 04:47:00,2022-04-07 01:58:00,2022-03-31 02:32:00,2022-03-25 11:59:00,2022-04-12 05:07:00,2022-03-29 01:46:00,2022-03-31 05:52:00"
split_string = string.split(",")
split_string.sort()

new_list = []

for i in split_string:
    temp_list = i.split()

    new_list.append(temp_list[0])

max_date = new_list[-1]
min_date = new_list[0]

如果您不确定日期格式是否始终为 YYYY-MM-DD:

,您可以使用以下代码
import datetime

string= "2022-04-13 04:47:00,2022-04-07 01:58:00,2022-03-31 02:32:00,2022-03-25 11:59:00,2022-04-12 05:07:00,2022-03-29 01:46:00,2022-03-31 05:52:00"
dates_list = [date[:10] for date in string.split(',')]
dates_list.sort(key=lambda x: datetime.datetime.strptime(x, '%Y-%m-%d'))
min_date, max_date = dates_list[0], dates_list[-1]

您可以在此处轻松替换日期格式