【发布时间】:2014-06-13 16:22:21
【问题描述】:
我在pandas DataFrame 中有一列时间戳(以毫秒为单位)。从时间戳中,我试图在单独的列中导出时间戳的小时、分钟、星期几和月份。
我尝试在整个列中使用apply 函数,但无济于事。因此,我采用了一种非常天真的(但不是很简洁)的方法来创建这些列:
import pandas
import datetime
df=pd.DataFrame( {'time':[1401811621559, 1402673694105, 1402673749561, 1401811615479, 1402673708254], 'person':['Harry', 'Ann', 'Sue', 'Jeremy', 'Anne']})
df['time'] = pandas.to_datetime(df.time, unit='ms')
days = []
tod = []
month = []
minutes = []
for row in df['time']:
days.append(row.strftime('%w'))
tod.append(row.strftime('%H'))
month.append(row.strftime('%m'))
minutes.append(row.strftime('%M'))
##
df['dayOfWeek'] = days
df['timeOfDay'] = tod
df['month'] = month
df['minutes'] = minutes
有没有类似的方法来做到这一点?
df['dayOfWeek'] = df['time'].apply(strftime('%w'),axis = 1)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'strftime' is not defined
【问题讨论】: