首页 > 解决方案 > 向新列添加时间戳

问题描述

我有一个时间列名称“timeStmap”包含日期和时间,我想构造日期、月份、小时并将它们添加到我的数据框中的新列

这是我的代码

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

它显示错误: AttributeError: 'DataFrame' object has no attribute 'timeStmap'

标签: pythonpandas

解决方案


你可以按照这些思路做一些事情,只是复制你想要的所有东西

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


推荐阅读