提问人:Rohit Pawar 提问时间:10/25/2023 更新时间:10/25/2023 访问量:40
将具有多种格式的日期列更改为 datetime
Changing date column with multiple formats to datetime
问:
我有一个带有日期列的数据帧。它在日期上有多种格式,主要是“YYYY-MM-DD”,但也有一些“YYYY”。MM.DD“,有些像”1968 年 10 月 26 日”。如何将它们制作成一种日期时间格式?谢谢
尝试了一些堆栈溢出解决方案,但似乎没有任何效果。
答:
1赞
HolderRoberts
10/25/2023
#1
您可以尝试名为 的第三方库。您可以在此处阅读文档。dateparser
在这里,我只给大家看一些例子。
首先,只需通过以下方式安装
pip install dateparser
然后,您可以执行以下操作:
>>> import dateparser
>>> dateparser.parse('2012-10-02') # YYYY-MM-DD
datetime.datetime(2012, 10, 2, 0, 0)
>>> dateparser.parse('2012.05.02') # YYYY.MM.DD
datetime.datetime(2012, 5, 2, 0, 0)
>>> dateparser.parse('1968 October 26') # Other format
datetime.datetime(1968, 10, 26, 0, 0)
dateparser.parse
返回 Python standard ,您可以轻松地将其转换为所需的任何格式。datetime.datetime
此外,我认为如果您发布“一些堆栈溢出解决方案”和结果可能会更好,以便我们可以为您提供一些建议。
0赞
user19077881
10/25/2023
#2
解析器会将各种格式的字符串转换为 Pandas 日期时间/时间戳。注意 dateutil 作为 .datetime/timestamp 格式最适合 Pandas 中的持续处理。如果您确实想要一个字符串,则可以使用允许定义所需字符串格式的函数转换此格式。python-dateutil
strftime
from dateutil.parser import parse
import pandas as pd
df = pd.DataFrame({'Date': ["2023-10-23", "2011.09.26", "1968 October 26"]})
df['Date'] = df['Date'].map(parse)
print(df)
Date
0 2023-10-23
1 2011-09-26
2 1968-10-26
0赞
mozway
10/25/2023
#3
pd.to_datetime
可以从头开始处理所有这些格式,请使用以下参数:format='mixed', yearfirst=True, dayfirst=False
df['date2'] = pd.to_datetime(df['date'], format='mixed',
yearfirst=True, dayfirst=False)
在这种特殊情况下,您甚至可以省略:yearfirst=True
df['date2'] = pd.to_datetime(df['date'], format='mixed', dayfirst=False)
例:
date date2
0 1968-10-26 1968-10-26
1 1968.10.26 1968-10-26
2 1968 October 26 1968-10-26
评论