解析特定的数据时间格式Python

时间:2018-04-09 10:07:25

标签: python regex datetime

[PYTHON] 在我的数据框中有一列,其中日期具有以下格式: '份Jan07'或' 200701' 有没有一种简单的方法可以将这种类型的日期转换为: ' 01-2007'例如? 也许使用正则表达式?

2 个答案:

答案 0 :(得分:0)

首先将字符串列转换为正确的日期时间:

df['colname'] = pd.to_datetime(df['colname'], format='%Y%m') # e.g. 200701

然后以您想要的格式返回字符串:

df['colname'] = df['colname'].dt.strftime('%m-%Y')

这个两步过程确保您没有无效值,但相对较快,因为它是矢量化的(没有Python循环)。

答案 1 :(得分:0)

这可能会有所帮助。

import pandas as pd
from datetime import datetime

df = pd.DataFrame({"A": ['JAN07', '200701']})
print df["A"].apply(lambda x: datetime.strptime(x, '%Y%m').strftime('%m-%Y') if x[0].isdigit() else datetime.strptime(x, '%b%y').strftime('%m-%Y'))

<强>输出:

0    01-2007
1    01-2007
Name: A, dtype: object