我有一个时间列名称'timeStmap',其中包含日期和时间,我想将月份构造为一天中的小时,然后将其添加到数据框中的新列中
这是我的代码
year,hour,month,date,Week_day=zip(*[(d.year(),d.hour(),d.month(),d.day()) for d in df.timeStmap])
它显示错误: AttributeError:“ DataFrame”对象没有属性“ timeStmap”
答案 0 :(得分:0)
您可以按照以下方式做一些事情 只需复制您想要的所有东西
df['year'] = df.apply (lambda row: pd.Timestamp(row['timeStamp']).year, axis=1)
要做多列..
def f(r):
return pd.Timestamp(r).year, pd.Timestamp(r).month,pd.Timestamp(r).day
df['year'],df['month'],df['day'] = zip(*df['timeStamp'].map(f))
函数f(r)以以下时间戳记-“ 2019-12-23”的方式返回数据
returns - 2019,12,23
您可以使用map将此函数映射到数据框中的每一行。
现在,您有一堆2019,12,23 2019,12,24 2019,12,25 2019,12,26
zip将所有这些转换为列表..,并传递到数据框的列中。