Pandas: 一列多种日期格式
Pandas: Multiple date formats in one column
我在一个 Pandas 系列(列)中有两种日期格式需要标准化为一种格式 (mmm dd & mm/dd/YY)
日期
1 月 3 日
1 月 2 日
1 月 1 日
12/31/19
12/30/19
12/29/19
甚至 Excel 也不会将 mmm dd 格式识别为日期格式。我可以使用 str.replace:
将 mmm 更改为完整拼写的月份
df['Date'] = df['Date'].str.replace('Jan', 'January', regex=True)
但是如何添加当前年份?然后如何将 2020 年 1 月 1 日转换为 01/01/20?
你试过 parse()
from dateutil.parser import parse
import datetime
def clean_date(text):
datetimestr = parse(text)
text = datetime.strptime(datetimestr, '%Y%m%d')
return text
df['Date'] = df['Date'].apply(clean_date)
df['Date'] = pd.to_datetime(df['Date'])
如果它在数据框中使用这个:
from dateutil.parser import parse
import pandas as pd
for i in range(len(df['Date'])):
df['Date'][i] = parse(df['Date'][i])
df['Date'] = pd.to_datetime(df['Date']).dt.strftime("%d-%m-%Y")
找到解决方案(需要使用apply
):
df['date'] = df['date'].apply(dateutil.parser.parse)
我在一个 Pandas 系列(列)中有两种日期格式需要标准化为一种格式 (mmm dd & mm/dd/YY)
日期
1 月 3 日
1 月 2 日
1 月 1 日
12/31/19
12/30/19
12/29/19
甚至 Excel 也不会将 mmm dd 格式识别为日期格式。我可以使用 str.replace:
将 mmm 更改为完整拼写的月份df['Date'] = df['Date'].str.replace('Jan', 'January', regex=True)
但是如何添加当前年份?然后如何将 2020 年 1 月 1 日转换为 01/01/20?
你试过 parse()
from dateutil.parser import parse
import datetime
def clean_date(text):
datetimestr = parse(text)
text = datetime.strptime(datetimestr, '%Y%m%d')
return text
df['Date'] = df['Date'].apply(clean_date)
df['Date'] = pd.to_datetime(df['Date'])
如果它在数据框中使用这个:
from dateutil.parser import parse
import pandas as pd
for i in range(len(df['Date'])):
df['Date'][i] = parse(df['Date'][i])
df['Date'] = pd.to_datetime(df['Date']).dt.strftime("%d-%m-%Y")
找到解决方案(需要使用apply
):
df['date'] = df['date'].apply(dateutil.parser.parse)