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