我很有兴趣生成一个数据框来生成一个范围从2012年到2015年的日期列表。我想做的是能够拉动一周中的某一天,例如:
2012-01-01 Sunday
2012-01-02 Monday
2012-01-03 Tuesday
这就是我的开始,以及我想如何完成它。但是我似乎无法获得to_datetime以便我可以继续获得一周的时间。
import pandas as pd
i = pd.date_range('2012-01-01', '2015-12-31')
df = pd.DataFrame(dict(year = i.year, month = i.month, day = i.day))
df = pd.to_datetime(df.year*10000 + df.month*100 + df.day, format = '%Y%m%d')
df['weekday'] = df.dt.dayofweek
days = {0:'Mon',1:'Tues',2:'Weds',3:'Thurs',4:'Fri',5:'Sat',6:'Sun'}
df['day_of_week'] = df['day_of_week'].apply(lambda x: days[x])
我非常感谢有关如何处理此数据框的任何帮助,以便我可以解决这个问题。
答案 0 :(得分:1)
import pandas as pd
i = pd.date_range('2012-01-01', '2015-12-31')
i.to_series().apply(lambda x: x.strftime('%A'))
答案 1 :(得分:1)
您可以将列表理解与strftime
一起使用:
i = pd.date_range('2012-01-01', '2015-12-31')
df = pd.DataFrame({'day_of_week': [ts.strftime("%A") for ts in i]}, index=i)
df.head()
day_of_week
2012-01-01 Sunday
2012-01-02 Monday
2012-01-03 Tuesday
2012-01-04 Wednesday
2012-01-05 Thursday