python - 向新列添加时间戳
问题描述
我有一个时间列名称“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'
解决方案
你可以按照这些思路做一些事情,只是复制你想要的所有东西
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 将所有这些转换为一个列表.. 并传递给数据框中的列。