有什么做任务拿钱的网站,中企动力邮箱登录端口,网络架构图用什么软件画,建设银行官方网站诚聘英才频道pythonpandas时间、日期以及时间序列处理方法先简单的了解下日期和时间数据类型及工具 python标准库包含于日期(date)和时间(time)数据的数据类型#xff0c;datetime、time以及calendar模块会被经常用到。 datetime以毫秒形式存储日期和时间#xff0c;datetime.timedelta表…pythonpandas时间、日期以及时间序列处理方法先简单的了解下日期和时间数据类型及工具 python标准库包含于日期(date)和时间(time)数据的数据类型datetime、time以及calendar模块会被经常用到。 datetime以毫秒形式存储日期和时间datetime.timedelta表示两个datetime对象之间的时间差。 给datetime对象加上或减去一个或多个timedelta会产生一个新的对象from datetime import datetimefrom datetime import timedeltanow datetime.now()nowdatetime.datetime(2017, 6, 27, 15, 56, 56, 167000)datetime参数datetime(year, month, day[, hour[, minute[, second[, microsecond[,tzinfo]]]]])delta now - datetime(2017,6,27,10,10,10,10)deltadatetime.timedelta(0, 20806, 166990)delta.days0delta.seconds20806delta.microseconds166990只有这三个参数了 datetime模块中的数据类型类型 说明date 以公历形式存储日历日期(年、月、日)time 将时间存储为时、分、秒、毫秒datetime 存储日期和时间timedelta 表示两个datetime值之间的差(日、秒、毫秒)字符串和datetime的相互转换1)python标准库函数 日期转换成字符串利用str 或strftime 字符串转换成日期datetime.strptimestamp datetime(2017,6,27)str(stamp)2017-06-27 00:00:00stamp.strftime(%y-%m-%d)#%Y是4位年%y是2位年17-06-27#对多个时间进行解析成字符串date [2017-6-26,2017-6-27]datetime2 [datetime.strptime(x,%Y-%m-%d) for x in date]datetime2[datetime.datetime(2017, 6, 26, 0, 0), datetime.datetime(2017, 6, 27, 0, 0)]2)第三方库dateutil.parser的时间解析函数pandas通常用于处理成组日期不管这些日期是DataFrame的轴索引还是列to_datetime方法可以解析多种不同的日期表示形式。date[2017-6-26, 2017-6-27]import pandas as pdpd.to_datetime(date)DatetimeIndex([2017-06-26, 2017-06-27], dtypedatetime64[ns], freqNone)datetime 格式定义代码 说明%Y 4位数的年%y 2位数的年%m 2位数的月[01,12]%d 2位数的日[0131]%H 时(24小时制)[00,23]%l 时(12小时制)[01,12]%M 2位数的分[00,59]%S 秒[00,61]有闰秒的存在%w 用整数表示的星期几[0(星期天)6]%F %Y-%m-%d简写形式例如2017-06-27%D %m/%d/%y简写形式pandas时间序列基础以及时间、日期处理pandas最基本的时间序列类型就是以时间戳(时间点)(通常以python字符串或datetime对象表示)为索引的Seriesdates [2017-06-20,2017-06-21,\2017-06-22,2017-06-23,2017-06-24,2017-06-25,2017-06-26,2017-06-27]import numpy as npts pd.Series(np.random.randn(8),index pd.to_datetime(dates))ts2017-06-20 0.7888112017-06-21 0.3725552017-06-22 0.0099672017-06-23 -1.0246262017-06-24 0.9812142017-06-25 0.3141272017-06-26 -0.1272582017-06-27 1.919773dtype: float64ts.indexDatetimeIndex([2017-06-20, 2017-06-21, 2017-06-22, 2017-06-23,2017-06-24, 2017-06-25, 2017-06-26, 2017-06-27],dtypedatetime64[ns], freqNone)pandas不同索引的时间序列之间的算术运算会自动按日期对齐ts[::2]#从前往后每隔两个取数据2017-06-20 0.7888112017-06-22 0.0099672017-06-24 0.9812142017-06-26 -0.127258dtype: float64ts[::-2]#从后往前逆序每隔两个取数据2017-06-27 1.9197732017-06-25 0.3141272017-06-23 -1.0246262017-06-21 0.372555dtype: float64ts ts[::2]#自动数据对齐2017-06-20 1.5776212017-06-21 NaN2017-06-22 0.0199352017-06-23 NaN2017-06-24 1.9624292017-06-25 NaN2017-06-26 -0.2545162017-06-27 NaNdtype: float64索引为日期的Series和DataFrame数据的索引、选取以及子集构造方法1).index[number_int]2)[一个可以被解析为日期的字符串]3)对于较长的时间序列只需传入‘年或‘年月可返回对应的数据切片4)通过时间范围进行切片索引ts2017-06-20 0.7888112017-06-21 0.3725552017-06-22 0.0099672017-06-23 -1.0246262017-06-24 0.9812142017-06-25 0.3141272017-06-26 -0.1272582017-06-27 1.919773dtype: float64ts[ts.index[2]]0.0099673896063391908ts[2017-06-21]#传入可以被解析成日期的字符串0.37255538918121028ts[21/06/2017]0.37255538918121028ts[20170621]0.37255538918121028ts[2017-06]#传入年或年月2017-06-20 0.7888112017-06-21 0.3725552017-06-22 0.0099672017-06-23 -1.0246262017-06-24 0.9812142017-06-25 0.3141272017-06-26 -0.1272582017-06-27 1.919773dtype: float64ts[2017-06-20:2017-06-23]#时间范围进行切片2017-06-20 0.7888112017-06-21 0.3725552017-06-22 0.0099672017-06-23 -1.024626dtype: float64带有重复索引的时间序列1).index.is_unique检查索引日期是否是唯一的2)对非唯一时间戳的数据进行聚合通过groupby并传入level 0(索引的唯一一层)dates pd.DatetimeIndex([2017/06/01,2017/06/02,2017/06/02,2017/06/02,2017/06/03])datesDatetimeIndex([2017-06-01, 2017-06-02, 2017-06-02, 2017-06-02,2017-06-03],dtypedatetime64[ns], freqNone)dup_ts pd.Series(np.arange(5),index dates)dup_ts2017-06-01 02017-06-02 12017-06-02 22017-06-02 32017-06-03 4dtype: int32dup_ts.index.is_uniqueFalsedup_ts[2017-06-02]2017-06-02 12017-06-02 22017-06-02 3dtype: int32grouped dup_ts.groupby(level0).mean()grouped2017-06-01 02017-06-02 22017-06-03 4dtype: int32dup_df pd.DataFrame(np.arange(10).reshape((5,2)),index dates )dup_df0 12017-06-01 0 12017-06-02 2 32017-06-02 4 52017-06-02 6 72017-06-03 8 9grouped_df dup_df.groupby(level0).mean()##针对DataFramegrouped_df总结1)字符串、日期的转换方法2)日期和时间的主要pythondatetime、timedelta、pandas.to_datetime等3)以时间为索引的Series和DataFrame的索引、切片4)带有重复时间索引时的索引.groupby(level0)应用欢迎关注我的号志学Python