我的数据框有一个名为'Date的列;包含月/日/年('01 / 01/2018')格式的日期。我想创建一个名为'Month'的新列,它将包含月份的名称,在本例中为1月。 显然我想每个月都这样做。
例如:
Date Month
0 01/01/2018 January
1 02/03/2018 February
2 04/08/2018 April
我该怎么办? 谢谢
答案 0 :(得分:1)
我假设df中的'Date'是string
,因此需要转换。
如果不是,您需要相应调整。
尝试以下
from datetime import date,datetime #date needed for simulation.
import pandas as pd
l = ['01/01/2018','02/03/2018','04/08/2018']
df = pd.DataFrame({'Date':l})
df['Month']=df['Date'].apply(lambda x :datetime.strptime(x, '%m/%d/%Y').strftime('%B'))
<强>结果强>
>>> df
Date Month
0 01/01/2018 January
1 02/03/2018 February
2 04/08/2018 April
>>>
答案 1 :(得分:0)
以下是解决问题的简单方法:
<强>代码强>
import calendar
import pandas as pd
d = {'Date':['01/01/2018', '02/03/2018', '04/08/2018']}
df1 = pd.DataFrame(d)
df1['Month'] = pd.DatetimeIndex(df1['Date']).month
df1['Month'] = df1['Month'].apply(lambda x: calendar.month_name[x])
print(df1)
执行此代码后,您将得到所需的结果:
<强>结果强>
Date Month
0 01/01/2018 January
1 02/03/2018 February
2 04/08/2018 April