大熊猫使用数据范围来获取每个日期的星期几

时间:2016-04-29 23:03:26

标签: python date pandas

我很有兴趣生成一个数据框来生成一个范围从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])

我非常感谢有关如何处理此数据框的任何帮助,以便我可以解决这个问题。

2 个答案:

答案 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