2017-10-19 137 views
1

我有一个名为user_logsmsno为数据帧关键替换日期INT在数据帧列

msno date num_25 num_50 num_75 num_985 num_100 num_unq total_secs 

rxIP2f2aN0rYNp+toI0Obt/N/FYQX8hcO1fTmmy2h34= 20150513 0 0 0 0 0 1 1 280.335 
rxIP2f2aN0rYNp+toI0Obt/N/FYQX8hcO1fTmmy2h34= 20150709 9 1 0 0 0 1 1 280.335 
yxiEWwE9VR5utpUecLxVdQ5B7NysUPfrNtGINaM2zA8= 20150105 3 3 0 0 0 1 1 280.335 
yxiEWwE9VR5utpUecLxVdQ5B7NysUPfrNtGINaM2zA8= 20150306 1 0 0 0 0 1 1 280.335 
yxiEWwE9VR5utpUecLxVdQ5B7NysUPfrNtGINaM2zA8= 20150501 3 0 0 0 38 38 9649.029 

date列是int和我想它作为一个datetime格式,但我完全被卡住。我只得到了作为车费创建一个新的变量,我实际上是在格式化成日期succedded:

Dates = pd.DataFrame([datetime.strptime(format(d, '.0f'), '%Y%m%d') for d in user_logs.loc[: , 'date']]) 

但我有一种感觉,使用DataFrame.replace可能是有用的?

+0

当您从文件读取以创建名为parse_dates的数据框时,read_table中有一个属性。尝试将其设置为True。它可能有帮助。 –

回答

0

您可以在read_csv参数parse_dates如果从文件创建DataFrame

df = pd.read_csv('file', parse_dates=['date']) 

另一种解决方案是to_datetime

user_logs['date'] = pd.to_datetime(user_logs['date'], format='%Y%m%d') 
+0

第二个人就像一个魅力。谢谢! – theresemoreau

0
datetime.datetime.fromtimestamp(20150513) 

将这个时间戳转换为datetime对象。