从数据框中的列中提取星期几,并放入另一列

时间:2016-04-08 10:49:36

标签: python datetime pandas dayofweek

# Give day of the week
def DOW(df):
    DOW = pd.Series(datetime.datetime.strptime(df['indx'],'%Y%m%d').strftime('%A'))
    df = df.join(DOW)
    return df

我从另一个脚本调用此函数,其中d是我的数据帧,我传递给函数DOW

 d = TA.DOW(d)

它抛出错误。什么可以解决相同的问题

DOW=pd.Series(datetime.datetime.strptime(df['indx'],'%Y%m%d').strftime('%A'))
TypeError: must be string, not Series

1 个答案:

答案 0 :(得分:1)

我认为您可以先转换indx to_datetime列,然后按照dt.strftime使用EdChum

print df
       indx  Value
0  20020101   3.00
1  20020102   3.50
2  20020103   3.30
3  20100101   4.96
4  20100102   4.98

df['new'] = pd.to_datetime(df['indx'], format='%Y%m%d').dt.strftime('%A') 
print df
       indx  Value        new
0  20020101   3.00    Tuesday
1  20020102   3.50  Wednesday
2  20020103   3.30   Thursday
3  20100101   4.96     Friday
4  20100102   4.98   Saturday