问题描述:在利用pandas对excel数据表进行提取的时候,我要对里面的时间进行分析,然后发现当我想逐个取出年、月、日、星期的时候报错了,错误如下: 意思是str类型的对象没有year这个属性,后来发现,虽然我读进来是个对象,但是却忽略了一个细节,就是在这里需要的是具体的时间戳对象,读出来的却是str对象,所以会报这个错。 解决方案: 将读出来的时间对象利用pandas进行时间戳转换之后再进行使用。
import pandas as pd #读取数据表,相对路径 order = pd.read_table('meal_order_info.csv',sep=',',encoding='gbk') print(order) print('befor',type(order['lock_time']))#<class 'pandas.core.series.Series'> print('befor',order['lock_time'].dtypes)#object print('befor',type(order['lock_time'][0]))#befor <class 'str'> #转换时间戳 order['lock_time'] = pd.to_datetime(order['lock_time']) print(type(order['lock_time'][0]))#<class 'pandas._libs.tslibs.timestamps.Timestamp'> #年、月、日、星期 year = [i.year for i in order['lock_time']] month = [i.month for i in order['lock_time']] day = [i.day for i in order['lock_time']] hour = [i.hour for i in order['lock_time']]这是转换后拿到的年,注意得到的是一个数组。
