添加一个新列,其值取决于特定条件

2024-05-08 14:58:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个数据框,它有一个名为“Date”的列,其中包含格式为month/day/year('01/01/2018')的日期。我想创建一个名为'Month'的新列,它将包含月份的名称,在本例中是一月。 很明显,我每个月都想这么做。你知道吗

例如:

   Date         Month
0  01/01/2018   January
1  02/03/2018   February
2  04/08/2018   April

我该怎么做? 谢谢


Tags: 数据名称date格式yearday月份month
2条回答

这里有一个简单的方法来解决这个问题:

代码

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

我假设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
>>> 

相关问题 更多 >