Python 要将字符串日期转换为日期时间,并将其拆分为年和月的两列

Python 要将字符串日期转换为日期时间,并将其拆分为年和月的两列,python,pandas,date,Python,Pandas,Date,我的数据框有一列日期,如2014-11-12。 我想将其分为两列:年和月日,并将2014年放在“年列”和11月12日放在“月日”列中。我是python新手。非常感谢您的帮助。我认为您需要: df['Date'] = pd.to_datetime(df['Date']) df['Year'] = df['Date'].dt.year df['Month-Date'] = df['Date'].dt.strftime('%m-%d') print (df) ID

我的数据框有一列日期,如2014-11-12。 我想将其分为两列:月日,并将2014年放在“年列”和11月12日放在“月日”列中。我是python新手。非常感谢您的帮助。

我认为您需要:

df['Date'] =  pd.to_datetime(df['Date'])
df['Year'] = df['Date'].dt.year
df['Month-Date'] = df['Date'].dt.strftime('%m-%d')
print (df)
            ID       Date  Data_Value  Year Month-Date
0  USW00094889 2014-11-12          22  2014      11-12
1  USC00208972 2009-04-29          56  2009      04-29
2  USC00200032 2008-05-26         278  2008      05-26
3  USC00205563 2005-11-11         139  2005      11-11
4  USC00200230 2014-02-27        -106  2014      02-27
5  USW00014833 2010-10-01         194  2010      10-01
6  USC00207308 2010-06-29         144  2010      06-29


使用
df.Date.dt.month
,构建一个类似
{1:'Jan',2:'Feb'…}
的dict,然后使用
map
这可能是一个重复的问题和答案:。。。如果您提供一些代码,也会有所帮助。。。如果你问我的想法,据我所知,你有两个选择:(1)使用月份全名,这将要求你导入
datetime
并使用
.strftime(“%B”)
。(2) 使用缩写。在这种情况下,您应该使用数组创建自己的系统。基本上,让你的月数对应一个包含缩写的数组索引(这是非常基本的,但如果你不懂,请询问)。。。在这里粘贴一些数据有多难?你真的想让人们难以回答你的问题吗?你确定吗?否决票意味着非常糟糕的答案。那么为什么被接受呢?你的答案很完美,再次感谢
df['Date'] =  pd.to_datetime(df['Date'])
df['Year'] = df['Date'].dt.year
df['Month-Date'] = df['Date'].dt.strftime('%b-%d')
print (df)
            ID       Date  Data_Value  Year Month-Date
0  USW00094889 2014-11-12          22  2014     Nov-12
1  USC00208972 2009-04-29          56  2009     Apr-29
2  USC00200032 2008-05-26         278  2008     May-26
3  USC00205563 2005-11-11         139  2005     Nov-11
4  USC00200230 2014-02-27        -106  2014     Feb-27
5  USW00014833 2010-10-01         194  2010     Oct-01
6  USC00207308 2010-06-29         144  2010     Jun-29