使用Python中的pandas和datatime从字符串中获取时间信息
发布时间:2020-12-20 13:13:02 所属栏目:Python 来源:网络整理
导读:我正在为暑期学校做测试练习,这是我第一次使用 python. 据说,我可以通过以下代码获取我的时间信息: import pandas as pdfrom datetime import datetimedef print_time_range(times): print('Time from: {0},to: {1}'.format(datetime.fromtimestamp(times.m
我正在为暑期学校做测试练习,这是我第一次使用
python.
据说,我可以通过以下代码获取我的时间信息: import pandas as pd from datetime import datetime def print_time_range(times): print('Time from: {0},to: {1}'.format(datetime.fromtimestamp(times.min()),datetime.fromtimestamp(times.max()))) train_likes_df = pd.read_csv('train_likes.csv') print train_likes_df.shape train_likes_df.head(3) print_time_range(train_likes_df.time) 这将给我输出: Time from: 2014-01-10 17:15:37,to: 2016-02-24 15:15:37. 从与此类似的时间元素:1389733974.0. 但是我得到了一个带有pandas的属性错误,声称没有这样的属性time 我明白,那个时间是数据时间的方法,不能用DataFrame,但这就是我所理解的.我怎样才能使它全部工作? 解决方法
我想你需要
dt.time :
print_time_range(train_likes_df.time.dt.time) 你需要 train_likes_df['time'] = pd.to_datetime(train_likes_df['time'],unit='s') 样品: import pandas as pd import io temp=u"""user_id,item_id,channel,time aa,bb,cc,1389733974 aa,1390459377""" #after testing replace io.StringIO(temp) to filename train_likes_df = pd.read_csv(io.StringIO(temp)) print (train_likes_df) user_id item_id channel time 0 aa bb cc 1389733974 1 aa bb cc 1390459377 train_likes_df['time'] = pd.to_datetime(train_likes_df['time'],unit='s') print (train_likes_df) user_id item_id channel time 0 aa bb cc 2014-01-14 21:12:54 1 aa bb cc 2014-01-23 06:42:57 print (train_likes_df.time.dt.time) 0 21:12:54 1 06:42:57 Name: time,dtype: object 你的功能很好用: from datetime import datetime def print_time_range(times): print ('Time from: {0},datetime.fromtimestamp(times.max()))) print_time_range(train_likes_df.time) Time from: 2014-01-14 22:12:54,to: 2014-01-23 07:42:57 如果有keyerror,也许有一些空间,可以通过print(train_likes_df.columns)检查 – 列时间有问题 – 有空间: import pandas as pd import io temp=u"""user_id,time,test aa,1389733974,1 aa,1390459377,2""" #after testing replace io.StringIO(temp) to filename train_likes_df = pd.read_csv(io.StringIO(temp)) print (train_likes_df) user_id item_id channel time test 0 aa bb cc 1389733974 1 1 aa bb cc 1390459377 2 print (train_likes_df.columns) Index(['user_id','item_id','channel','time ','test'],dtype='object') 您可以在 train_likes_df.columns = train_likes_df.columns.str.strip() print (train_likes_df.columns) Index(['user_id','time',dtype='object') 按文件编辑(我添加.head()仅过滤前5条记录以获得更好的输出): import pandas as pd train_likes_df = pd.read_csv('train_likes.csv') train_likes_df['time'] = pd.to_datetime(train_likes_df['time'],unit='s') print (train_likes_df.head()) user_id item_id 0 612d8e8eef05acff3278c061ec10f704 7aa5d00445cb9d61d1739dd0df9a0a88 1 71a7f1d1be96603971ba66e4a17e845c 5edaf734b432e5cc954a10b59cb97e70 2 6eaa117728d50265e6b2ac24a80e04ae 8ad97d075fce19c2d182eb2a4539aa1c 3 5d9db6ab742755197343505bccfad516 aa5f2ca699da42e467e550f9f071fb3f 4 3000a163610654f1fa181e74136d2d35 8142d0e687c1c7a317ed9673db9f11a4 channel time 0 1f0e3dad99908345f7439f8ffabdffc4 2014-01-14 21:12:54 1 ec5decca5ed3d6b8079e2e7e7bacc9f2 2014-01-23 06:42:57 2 98f13708210194c475687be6106a3b84 2014-01-30 06:39:23 3 98f13708210194c475687be6106a3b84 2014-01-30 03:36:17 4 c74d97b01eae257e44aa9d5bade97baf 2014-02-14 12:30:23 print (train_likes_df.time.dt.time.head()) 0 21:12:54 1 06:42:57 2 06:39:23 3 03:36:17 4 12:30:23 Name: time,dtype: object (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |