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