我写了一个确定工作日的函数。当我尝试将其应用于我的数据框时,会遇到以下错误。
data['date'].head()
0 2016-01-01
1 2016-01-01
2 2016-01-01
3 2016-01-01
4 2016-01-01
def weekday_determination(col):
year, month, day = (int(x) for x in col.split('-'))
ans = datetime.date(year, month, day)
return ans.strftime('%A')
data['week_day'] = data['date'].apply(weekday_determination, axis=1)
我遇到以下错误:
TypeError:weekday_determination()收到了意外的关键字参数“轴”
答案 0 :(得分:1)
最好在to_datetime
中使用Series.dt.day_name
:
data['week_day'] = pd.to_datetime(data['date']).dt.day_name()
print (data)
date week_day
0 2016-01-01 Friday
1 2016-01-01 Friday
2 2016-01-01 Friday
3 2016-01-01 Friday
4 2016-01-01 Friday
您的解决方案中使用了Series.apply
,因此没有参数axis
:
data['date'] = data['date'].apply(weekday_determination)
可能的DataFrame.apply
解决方案:
data['week_day'] = data.apply(lambda x: weekday_determination(x['date']), axis=1)