Python 时间的处理

Python 时间的处理

标签(空格分隔): python 数据分析


日期以及时间数据类型

日期 data, 时间 time
datatime是包含data以及time 的数据类型
timedelta两个datatime之间的差值

字符串和datatime的转化

datetime转换成字符串

stamp = datetime(2011, 1, 3)
str(stamp)
stamp.strftime('%Y-%m-%d') #可以自己定义格式

字符串转datetime

value = '2011-01-03'
stamp = datetime.strptime(value, '%Y-%m-%d')

还有一种很方便的就是通过第三方包dateutil

from dateutil.parser import parser
stamp = parser('2011-03-11') #parser几乎对所有格式时间都可以转化,但是对有歧义的需要小心,最后自己手动指明参数datefirst=true

pandas处理成组日期

datestrs = ['7/6/2011', '8/6/2011']
pd.to_datetime(datestrs+['None']) #pandas会将缺失值处理成NaT(Not a Time)
  • %Y 4位数的年
  • %y 2位数的年
  • %m 2位数的月
  • %d 2位数的日
  • %H 24小时 %I12小时
  • %M 2位数的分
  • %S 秒0, 61
  • %w 一周星期几
  • %U [00, 53]每年的第多少周,第一个星期天前被认为是第0周
  • %W [00, 53]每年的第多少周,第一个星期一前被认为是第0周
  • %F %Y-%m-%d的缩写
  • %D %m/%d/%y的缩写
  • %a 星期几简写 %A星期几全写
  • %b 月份简写 %B月份全写

Pandas时间片段

tmp = pd.date_range('1/1/2000', periods=1000)
longer_ts = Series(np.random.randn(1000), index=tmp)
longer_ts['2001'] #就可以把2001年的都取出来
#通过日期进行切片的方式只对规则Series有效???
longer_ts['1/6/2001':'1/11/2011'] #这里时间戳的日期可以不存在

带重复索引的时间序列,然后可以聚合
pd.date_range('1/1/2000', '10/1/2000', freq='BM)BM表示每月的最后一个工作日

猜你喜欢

转载自blog.csdn.net/xfzero/article/details/79962288