【问题标题】:Adding binary columns that indicate the day of the week - AttributeError添加指示星期几的二进制列 - AttributeError
【发布时间】:2017-12-20 09:26:30
【问题描述】:

我有一个带有日期作为索引的 df。我想添加其他列(“Mon”....“Sun”)。假设 2012-10-03 是星期一,那么“Mon”列应该是 True,其他列应该是 False。

df 的形状为:

Date
2012-10-03    3521.0
2012-10-04    3475.0
2012-10-05    3148.0
2012-10-06    2006.0
2012-10-07    2142.0
2012-10-08    3537.0

想要的结果应该是这样的:

 Date                       Mon    Tue    Wed    Fri    Sat    Sun
    2012-10-03    3521.0    True   False  False  False  False  False
.....

为此,我使用了我在书中找到的代码:

days=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"]
for i in range(7):
    df[days[i]] = (df.index.dayofweek == i).astype(float)

应该可行但返回错误:

AttributeError: 'Index' 对象没有属性 'dayofweek'

我可以做些什么来解决这个问题?

【问题讨论】:

  • 您能否详细说明一下这个“星期几”是什么?
  • IMO 这个问题不应该被否决——它有输入样本数据集、所需数据集和无效的源代码(尝试)。我希望所有 Pandas 的问题都像这样被问到......再加上一个......

标签: python pandas datetime indexing


【解决方案1】:

在使用dayofweek之前需要将索引转换为DatetimeIndex

daily.index = pd.to_datetime(daily.index)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-01-16
    • 1970-01-01
    • 1970-01-01
    • 2017-01-12
    • 2017-11-07
    • 2019-06-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多