将时间戳添加到新列

时间:2019-10-09 16:43:57

标签: python pandas

我有一个时间列名称'timeStmap',其中包含日期和时间,我想将月份构造为一天中的小时,然后将其添加到数据框中的新列中

这是我的代码

    year,hour,month,date,Week_day=zip(*[(d.year(),d.hour(),d.month(),d.day()) for d in df.timeStmap])

它显示错误: AttributeError:“ DataFrame”对象没有属性“ timeStmap”

1 个答案:

答案 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将所有这些转换为列表..,并传递到数据框的列中。