gpt4 book ai didi

python - 如何在具有不同日期格式的列上将字符串转换为日期

转载 作者:行者123 更新时间:2023-12-01 01:54:49 24 4
gpt4 key购买 nike

我的Spark DataFrame中有一列open_date,其字符串类型值如下,这是两种不同的格式yyyymmddyyyymm

+---------+
|open_date|
+---------+
| 19500102|
| 195001|
+---------+


我的预期输出是

+----------+
| open_date|
+----------+
|1950-01-02|
|1950-01-01|
+----------+


我尝试使用 pyspark.sql.functions.substrpyspark.sql.functions.splitpyspark.sql.functions.regex_extract将此字符串转换为日期格式。由于对这些知识的了解有限,他们都没有成功。

如何在不同格式的列上将字符串转换为日期类型?

最佳答案

您可以要求存在yyyymm,但是将dd设置为可选。将它们分成自己的捕获组,如果缺少filter,则将其分成dd,然后使用join分隔符将其分隔为'-'

>>> import re
>>> s = '19500102 195001'
>>> ['-'.join(filter(None, i)) for i in re.findall(r'(\d{4})(\d{2})(\d{2})?', s)]
['1950-01-02', '1950-01']

关于python - 如何在具有不同日期格式的列上将字符串转换为日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50337064/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com