将此函数写入引用和现有date
列以创建名为wbm
的新列(week beginning monday
的缩写)。
def wbmFunc(df, col):
if df[col].weekday() == 0:
return df[col]
else:
return df[col] + timedelta(days=(0 - df[col].weekday()))
df['wbm'] = wbmFunc(df, 'date')
为什么会返回以下错误?
AttributeError: 'Series' object has no attribute 'weekday'
答案 0 :(得分:1)
答案 1 :(得分:0)
看起来您想构建一个新列,该列在给定日期的星期一开始。我认为要实现这一点,即使你修复了属性bug,仍然存在一些问题。为什么不使用pd.offsets
?您可以为同一目的尝试以下代码
def wbmFunc(df, col):
w_mon = pd.offsets.Week(weekday=0)
return df[col].apply(w_mon.rollback)