Pandas10--时序数据
目录
- 1 时序中的基本对象
- 2 时间戳
- 2.1 Timestamp的构造与属性
- 2.2 Datetime序列的生成
- 2.3 dt对象
- 2.4 时间戳的切片与索引
- 3 时间差
- 3.1 Timedelta的生成
- 3.2 Timedelta的运算
- 4 日期偏差
- 4.1 Offset对象
- 4.2 偏置字符串
- 5 时序中的滑窗与分组
- 5.1 滑动窗口
- 5.2 重采样
- 6 练习
- 6.1 太阳辐射数据集
- 6.2 水果销量数据集
1 时序中的基本对象
- 【例子】:例如2020年9月7日周一早上8点整需要到教室上课,这个课会在当天早上10点结束
- 时间戳(Date times):即’2020-9-7 08:00:00’和’2020-9-7 10:00:00’这两个时间点分别代表了上课和下课的时刻。
- 在
pandas
中称为Timestamp
- 一系列的时间戳可以组成
DatetimeIndex
,而将它放到Series
中后,Series
的类型就变为了datetime64[ns]
,如果有涉及时区则为datetime64[ns, tz]
,其中tz
是timezone
的简写。
- 在
- 时间差(Time deltas):即上课需要的时间
- 两个
Timestamp
做差就得到了时间差,pandas
中利用Timedelta
来表示。 - 类似的,一系列的时间差就组成了
TimedeltaIndex
, 而将它放到Series
中后,Series
的类型就变为了timedelta64[ns]
- 两个
- 时间段(Time spans):即在8点到10点这个区间都会持续地在上课
- 在
pandas
利用Period
来表示。 - 类似的,一系列的时间段就组成了
PeriodIndex
, 而将它放到Series
中后,Series
的类型就变为了Period
。
- 在
- 日期偏置(Date offsets):假设你只知道9月的第一个周一早上8点要去上课,但不知道具体的日期,那么就需要一个类型来处理此类需求
pandas
中的DateOffset
- 同时,
pandas
中没有为一列时间偏置专门设计存储类型,一般来说我们只需要对一批时间特征做一个统一的特殊日期偏置。
概念 | 单元素类型 | 数组类型 | pandas数据类型 |
---|---|---|---|
Date times | Timestamp | DatetimeIndex | datetime64[ns] |
Time deltas | Timedelta | TimedeltaIndex | timedelta64[ns] |
Time spans | Period | PeriodIndex | period[freq] |
Date offsets | DateOffset | None | None |
2 时间戳
2.1 Timestamp的构造与属性
pd.Timestamp
函数:单个时间戳的生成利用此函数实现- 通过
year, month, day, hour, min, second
可以获取具体的数值 - 【例子】
ts = pd.Timestamp('2020/1/1') ts # Timestamp('2020-01-01 00:00:00') ts = pd.Timestamp('2020-1-1 08:10:30') ts # Timestamp('2020-01-01 08:10:30')
ts.year # 2020 ts.second # 30
- 通过
- 时间戳的表示范围: 在
pandas
中,时间戳的最小精度为纳秒ns
,由于使用了64位存储,可以表示的时间范围大约可以如下计算:
Time Range =264109×60×60×24×365≈585(=\frac{2^{64}}{10^{9} \times 60 \times 60 \times 24 \times 365} \approx 585(=109×60×60×24×365264≈585( Years )))
通过pd.Timestamp.max
和pd.Timestamp.min
可以获取时间戳表示的范围:pd.Timestamp.max # Timestamp('2262-04-11 23:47:16.854775807') pd.Timestamp.min # Timestamp('1677-09-21 00:12:43.145225') pd.Timestamp.max.year - pd.Timestamp.min.year # 585
2.2 Datetime序列的生成
to_datetime
函数:能够把一列时间戳格式的对象转换成为datetime64[ns]
类型的时间序列- 在极少数情况,时间戳的格式不满足转换时,可以强制使用
format
进行匹配 - 【例子】
pd.to_datetime(['2020-1-1', '2020-1-3', '2020-1-6']) # DatetimeIndex(['2020-01-01', '2020-01-03', '2020-01-06'], dtype='datetime64[ns]', freq=None) temp = pd.to_datetime(['2020\\1\\1','2020\\1\\3'],format='%Y\\%m\\%d') temp # DatetimeIndex(['2020-01-01', '2020-01-03'], dtype='datetime64[ns]', freq=None)
注意:上面由于传入的是列表,而非
pandas
内部的Series
,因此返回的是DatetimeIndex
,如果想要转为datetime64[ns]
的序列,需要显式用Series
转化pd.Series(temp).head() ''' 0 2020-01-01 1 2020-01-03 dtype: datetime64[ns] '''
- 还存在一种把表的多列时间属性拼接转为时间序列的
to_datetime
操作,此时的列名必须和以下给定的时间关键词列名一致
df_date_cols = pd.DataFrame({'year': [2020, 2020],'month': [1, 1],'day': [1, 2],'hour': [10, 20],'minute': [30, 50],'second': [20, 40]}) pd.to_datetime(df_date_cols) ''' 0 2020-01-01 10:30:20 1 2020-01-02 20:50:40 dtype: datetime64[ns] '''
- 在极少数情况,时间戳的格式不满足转换时,可以强制使用
date_range
函数:是一种生成连续间隔时间的一种方法- 参数:
start, end, freq, periods
,它们分别表示开始时间,结束时间,时间间隔,时间戳个数。其中,四个中的三个参数决定了
注意:开始或结束日期如果作为端点则它会被包含
pd.date_range('2020-1-1','2020-1-21', freq='10D') # 包含 # DatetimeIndex(['2020-01-01', '2020-01-11', '2020-01-21'], dtype='datetime64[ns]', freq='10D') pd.date_range('2020-1-1','2020-2-28', periods=6) # 由于结束日期无法取到,freq不为10天 ''' DatetimeIndex(['2020-01-01 00:00:00', '2020-01-12 14:24:00','2020-01-24 04:48:00', '2020-02-04 19:12:00','2020-02-16 09:36:00', '2020-02-28 00:00:00'],dtype='datetime64[ns]', freq=None) '''
- 参数:
asfreq
函数:是一种改变序列采样频率的方法,它能够根据给定的freq
对序列进行类似于reindex
的操作s = pd.Series(np.random.rand(5),index=pd.to_datetime(['2020-1-%d'%i for i in range(1,10,2)])) s.head() ''' 2020-01-01 0.836578 2020-01-03 0.678419 2020-01-05 0.711897 2020-01-07 0.487429 2020-01-09 0.604705 dtype: float64 ''' s.asfreq('D').head() ''' 2020-01-01 0.836578 2020-01-02 NaN 2020-01-03 0.678419 2020-01-04 NaN 2020-01-05 0.711897 Freq: D, dtype: float64 '''
2.3 dt对象
dt
对象:在时序类型的序列上定义了dt
对象来完成许多时间序列的相关操作。datetime64[ns]
类型而言,可以大致分为三类操作:取出时间相关的属性、判断时间戳是否满足条件、取整操作。- 第一类操作的常用属性包括:
date, time, year, month, day, hour, minute, second, microsecond, nanosecond, dayofweek
(返回了周中的星期情况,周一为0、周二为1),dayofyear, weekofyear, daysinmonth, quarter
,其中daysinmonth, quarter
分别表示月中的第几天和季度。s = pd.Series(pd.date_range('2020-1-1','2020-1-3', freq='D')) s.dt.daysinmonth ''' 0 31 1 31 2 31 dtype: int64 ''' s.dt.dayofweek ''' 0 2 1 3 2 4 dtype: int64 '''
注意:通过
month_name, day_name
返回英文的月名和星期名,注意它们是方法而不是属性s.dt.month_name() ''' 0 January 1 January 2 January dtype: object ''' s.dt.day_name() ''' 0 Wednesday 1 Thursday 2 Friday dtype: object '''
- 第二类判断操作主要用于测试是否为月/季/年的第一天或者最后一天
s.dt.is_year_start # 还可选 is_quarter/month_start ''' 0 True 1 False 2 False dtype: bool ''' s.dt.is_year_end # 还可选 is_quarter/month_end ''' 0 False 1 False 2 False dtype: bool '''
- 第三类的取整操作包含
round(), ceil(向上取整), floor(向下取整)
,它们的公共参数为freq
,常用的包括H, min, S
(小时、分钟、秒)s = pd.Series(pd.date_range('2020-1-1 20:35:00','2020-1-1 22:35:00',freq='45min')) s ''' 0 2020-01-01 20:35:00 1 2020-01-01 21:20:00 2 2020-01-01 22:05:00 dtype: datetime64[ns] ''' s.dt.round('1H') ''' 0 2020-01-01 21:00:00 1 2020-01-01 21:00:00 2 2020-01-01 22:00:00 dtype: datetime64[ns] ''' s.dt.ceil('1H') ''' 0 2020-01-01 21:00:00 1 2020-01-01 22:00:00 2 2020-01-01 23:00:00 dtype: datetime64[ns] ''' s.dt.floor('1H') ''' 0 2020-01-01 20:00:00 1 2020-01-01 21:00:00 2 2020-01-01 22:00:00 dtype: datetime64[ns]'''
2.4 时间戳的切片与索引
- 一般而言,时间戳序列作为索引使用
- 选出某个子时间戳序列:第一类方法是利用
dt
对象和布尔条件联合使用;另一种方式是利用切片,后者常用于连续时间戳。- 【例子】
s = pd.Series(np.random.randint(2,size=366),index=pd.date_range('2020-01-01','2020-12-31')) idx = pd.Series(s.index).dt s.head() ''' 2020-01-01 1 2020-01-02 1 2020-01-03 0 2020-01-04 1 2020-01-05 0 Freq: D, dtype: int32 '''
【例子1】每月的第一天或者最后一天
s[(idx.is_month_start|idx.is_month_end).values].head()
【例子2】双休日
s[idx.dayofweek.isin([5,6]).values].head()
【例子3】取出单日值
s['2020-01-01']
【例子4】取出七月
s['2020-07'].head() ''' 2020-07-01 0 2020-07-02 1 2020-07-03 0 2020-07-04 0 2020-07-05 0 Freq: D, dtype: int32 '''
【例子5】取出5月初至7月15日
s['2020-05':'2020-7-15'].head() ''' 2020-05-01 0 2020-05-02 1 2020-05-03 0 2020-05-04 1 2020-05-05 1 Freq: D, dtype: int32 '''
3 时间差
3.1 Timedelta的生成
pd.Timedelta
构造:时间差可以理解为两个时间戳的差pd.Timestamp('20200102 08:00:00')-pd.Timestamp('20200101 07:35:00') # Timedelta('1 days 00:25:00') pd.Timedelta(days=1, minutes=25) # 需要注意加s # Timedelta('1 days 00:25:00') pd.Timedelta('1 days 25 minutes') # 字符串生成 # Timedelta('1 days 00:25:00')
pd.to_timedelta
函数:生成时间差序列的主要方式是pd.to_timedelta
,其类型为timedelta64[ns]
s = pd.to_timedelta(df.Time_Record) s.head() ''' 0 0 days 00:04:34 1 0 days 00:04:20 2 0 days 00:05:22 3 0 days 00:04:08 4 0 days 00:05:22 Name: Time_Record, dtype: timedelta64[ns] '''
timedelta_range
函数:与 date_range 一样,时间差序列也可以用此函数生成,它们两者具有一致的参数pd.timedelta_range('0s', '1000s', freq='6min') # TimedeltaIndex(['0 days 00:00:00', '0 days 00:06:00', '0 days 00:12:00'], dtype='timedelta64[ns]', freq='6T')
dt
对象:对于Timedelta
序列,同样也定义了dt
对象,上面主要定义了的属性包括days, seconds, mircroseconds, nanoseconds
,它们分别返回了对应的时间差特征。
注意:这里的
seconds
不是指单纯的秒,而是对天数取余后剩余的秒数s.dt.seconds.head() ''' 0 274 1 260 2 322 3 248 4 322 Name: Time_Record, dtype: int64 '''
- 如果不想对天数取余而直接对应秒数,可以使用
total_seconds
s.dt.total_seconds().head() ''' 0 274.0 1 260.0 2 322.0 3 248.0 4 322.0 Name: Time_Record, dtype: float64 '''
- 与时间戳序列类似,取整函数也是可以在
dt
对象上使用
pd.to_timedelta(df.Time_Record).dt.round('min').head() ''' 0 0 days 00:05:00 1 0 days 00:04:00 2 0 days 00:05:00 3 0 days 00:04:00 4 0 days 00:05:00 Name: Time_Record, dtype: timedelta64[ns] '''
- 如果不想对天数取余而直接对应秒数,可以使用
3.2 Timedelta的运算
- 时间差支持的常用运算有三类:与标量的乘法运算、与时间戳的加减法运算、与时间差的加减法与除法运算
td1 = pd.Timedelta(days=1) td2 = pd.Timedelta(days=3) ts = pd.Timestamp('20200101') # 乘法运算 td1 * 2 # Timedelta('2 days 00:00:00')# 加减法 td2 - td1 # Timedelta('2 days 00:00:00')
- 这些运算都可以移植到时间差的序列上
td1 = pd.timedelta_range(start='1 days', periods=5) td2 = pd.timedelta_range(start='12 hours',freq='2H',periods=5) ts = pd.date_range('20200101', '20200105') td1 * 5 # TimedeltaIndex(['5 days', '10 days', '15 days', '20 days', '25 days'], dtype='timedelta64[ns]', freq='5D') td1 * pd.Series(list(range(5))) # 逐个相乘 ''' 0 0 days 1 2 days 2 6 days 3 12 days 4 20 days dtype: timedelta64[ns] ''' td1 - td2 ''' TimedeltaIndex(['0 days 12:00:00', '1 days 10:00:00', '2 days 08:00:00','3 days 06:00:00', '4 days 04:00:00'],dtype='timedelta64[ns]', freq=None) '''
4 日期偏差
4.1 Offset对象
- 日期偏置:是一种和日历相关的特殊时间差
- 【例子】如何求2020年9月第一个周一的日期,以及如何求2020年9月7日后的第30个工作日是哪一天。
pd.Timestamp('20200831') + pd.offsets.WeekOfMonth(week=0,weekday=0) # Timestamp('2020-09-07 00:00:00') pd.Timestamp('20200907') + pd.offsets.BDay(30) # Timestamp('2020-10-19 00:00:00')
Offset
对象:Offset
对象在pd.offsets
中被定义。当使用+
时获取离其最近的下一个日期,当使用-
时获取离其最近的上一个日期pd.Timestamp('20200831') - pd.offsets.WeekOfMonth(week=0,weekday=0) # Timestamp('2020-08-03 00:00:00')pd.Timestamp('20200907') - pd.offsets.BDay(30) # Timestamp('2020-07-27 00:00:00')pd.Timestamp('20200907') + pd.offsets.MonthEnd() # Timestamp('2020-09-30 00:00:00')
Offset
对象CDay
:其中的holidays, weekmask
参数能够分别对自定义的日期和星期进行过滤,前者传入了需要过滤的日期列表,后者传入的是三个字母的星期缩写构成的星期字符串,其作用是只保留字符串中出现的星期
my_filter = pd.offsets.CDay(n=1,weekmask='Wed Fri',holidays=['20200109']) dr = pd.date_range('20200108', '20200111') dr.to_series().dt.dayofweek ''' 2020-01-08 2 2020-01-09 3 2020-01-10 4 2020-01-11 5 Freq: D, dtype: int64 ''' [i + my_filter for i in dr] ''' [Timestamp('2020-01-10 00:00:00'),Timestamp('2020-01-10 00:00:00'),Timestamp('2020-01-15 00:00:00'),Timestamp('2020-01-15 00:00:00')] '''
分析:上面的例子中,
n
表示增加一天CDay
,dr
中的第一天为20200108
,但由于下一天20200109
被排除了,并且20200110
是合法的周五,因此转为20200110
,其他后面的日期处理类似。
4.2 偏置字符串
- 前面提到了关于
date_range
的freq
取值可用Offset
对象,在pandas
中几乎每一个Offset
对象绑定了日期偏置字符串( frequencies strings/offset aliases )
,可以指定Offset
对应的字符串来替代使用pd.date_range('20200101','20200331', freq='MS') # 月初 # DatetimeIndex(['2020-01-01', '2020-02-01', '2020-03-01'], dtype='datetime64[ns]', freq='MS') pd.date_range('20200101','20200331', freq='M') # 月末 # DatetimeIndex(['2020-01-31', '2020-02-29', '2020-03-31'], dtype='datetime64[ns]', freq='M') pd.date_range('20200101','20200110', freq='B') # 工作日 ''' DatetimeIndex(['2020-01-01', '2020-01-02', '2020-01-03', '2020-01-06','2020-01-07', '2020-01-08', '2020-01-09', '2020-01-10'],dtype='datetime64[ns]', freq='B') '''
- 上面的这些字符串,等价于使用如下的
Offset
对象
pd.date_range('20200101','20200331',freq=pd.offsets.MonthBegin()) # DatetimeIndex(['2020-01-01', '2020-02-01', '2020-03-01'], dtype='datetime64[ns]', freq='MS') pd.date_range('20200101','20200331',freq=pd.offsets.MonthEnd()) # DatetimeIndex(['2020-01-31', '2020-02-29', '2020-03-31'], dtype='datetime64[ns]', freq='M') pd.date_range('20200101','20200110', freq=pd.offsets.BDay()) ''' DatetimeIndex(['2020-01-01', '2020-01-02', '2020-01-03', '2020-01-06','2020-01-07', '2020-01-08', '2020-01-09', '2020-01-10'],dtype='datetime64[ns]', freq='B') '''
- 上面的这些字符串,等价于使用如下的
5 时序中的滑窗与分组
5.1 滑动窗口
- 滑窗函数:所谓时序的滑窗函数,即把滑动窗口用
freq
关键词代替 shift
函数:作用在datetime64
为索引的序列上时,可以指定freq
单位进行滑动s.shift(freq='50D').head() ''' 2020-02-20 -1 2020-02-21 -2 2020-02-22 -1 2020-02-25 -1 2020-02-26 -2 dtype: int32 '''
5.2 重采样
- 重采样对象
resample
和第四章中分组对象groupby
的用法类似,前者是针对时间序列的分组计算而设计的分组对象- 【例子】对上面的序列计算每10天的均值
s.resample('10D').mean().head() ''' 2020-01-01 -2.000000 2020-01-11 -3.166667 2020-01-21 -3.625000 2020-01-31 -4.000000 2020-02-10 -0.375000 Freq: 10D, dtype: float64 '''
6 练习
6.1 太阳辐射数据集
现有一份关于太阳辐射的数据集:
In [128]: df = pd.read_csv('data/solar.csv', usecols=['Data','Time',.....: 'Radiation','Temperature']).....: In [129]: df.head(3)
Out[129]: Data Time Radiation Temperature
0 9/29/2016 12:00:00 AM 23:55:26 1.21 48
1 9/29/2016 12:00:00 AM 23:50:23 1.21 48
2 9/29/2016 12:00:00 AM 23:45:26 1.23 48
1.将 Datetime, Time 合并为一个时间列 Datetime ,同时把它作为索引后排序。
- 答案:
df = pd.read_csv('data/solar.csv', usecols=['Data','Time','Radiation','Temperature']) solar_date = df.Data.str.extract('([/|\w]+\s).+')[0] df['Data'] = pd.to_datetime(solar_date + df.Time) df = df.drop(columns='Time').rename(columns={'Data':'Datetime'}).set_index('Datetime').sort_index() df.head(3) '''Radiation Temperature Datetime 2016-09-01 00:00:08 2.58 51 2016-09-01 00:05:10 2.83 51 2016-09-01 00:20:06 2.16 51 '''
2.每条记录时间的间隔显然并不一致,请解决如下问题:
2.1找出间隔时间的前三个最大值所对应的三组时间戳。
- 答案:
s = df.index.to_series().reset_index(drop=True).diff().dt.total_seconds() max_3 = s.nlargest(3).index df.index[max_3.union(max_3-1)] ''' DatetimeIndex(['2016-09-29 23:55:26', '2016-10-01 00:00:19','2016-11-29 19:05:02', '2016-12-01 00:00:02','2016-12-05 20:45:53', '2016-12-08 11:10:42'],dtype='datetime64[ns]', name='Datetime', freq=None) '''
2.2是否存在一个大致的范围,使得绝大多数的间隔时间都落在这个区间中?如果存在,请对此范围内的样本间隔秒数画出柱状图,设置 bins=50 。
参考答案
3.求如下指标对应的 Series :
3.1温度与辐射量的6小时滑动相关系数
- 答案:
res = df.Radiation.rolling('6H').corr(df.Temperature) res.tail(3) ''' Datetime 2016-12-31 23:45:04 0.328574 2016-12-31 23:50:03 0.261883 2016-12-31 23:55:01 0.262406 dtype: float64 '''
3.2以三点、九点、十五点、二十一点为分割,该观测所在时间区间的温度均值序列
- 答案:
res = df.Temperature.resample('6H', origin='03:00:00').mean() res.head(3) ''' Datetime 2016-08-31 21:00:00 51.218750 2016-09-01 03:00:00 50.033333 2016-09-01 09:00:00 59.379310 Freq: 6H, Name: Temperature, dtype: float64 '''
3.3每个观测6小时前的辐射量(一般而言不会恰好取到,此时取最近时间戳对应的辐射量
6.2 水果销量数据集
现有一份2019年每日水果销量记录表:
In [130]: df = pd.read_csv('data/fruit.csv')In [131]: df.head(3)
Out[131]: Date Fruit Sale
0 2019-04-18 Peach 15
1 2019-12-29 Peach 15
2 2019-06-05 Peach 19
1.统计如下指标:
1.1每月上半月(15号及之前)与下半月葡萄销量的比值
参考答案
1.2每月最后一天的生梨销量总和
- 答案:
df[df.Date.dt.is_month_end].query("Fruit == 'Pear'").groupby('Date').Sale.sum().head() ''' Date 2019-01-31 847 2019-02-28 774 2019-03-31 761 2019-04-30 648 2019-05-31 616 Name: Sale, dtype: int64 '''
1.3每月最后一天工作日的生梨销量总和
- 答案:
df[df.Date.isin(pd.date_range('20190101', '20191231',freq='BM'))].query("Fruit == 'Pear'").groupby('Date').Sale.mean().head() ''' Date 2019-01-31 60.500000 2019-02-28 59.538462 2019-03-29 56.666667 2019-04-30 64.800000 2019-05-31 61.600000 Name: Sale, dtype: float64 '''
1.4每月最后五天的苹果销量均值
参考答案
2.按月计算周一至周日各品种水果的平均记录条数,行索引外层为水果名称,内层为月份,列索引为星期。
参考答案
3.按天计算向前10个工作日窗口的苹果销量均值序列,非工作日的值用上一个工作日的结果填充。
参考答案
Pandas10--时序数据相关推荐
- LTSM 实现多元素时序数据植物健康预测
作者 | 李秋键 出品 | AI科技大本营(ID:rgznai100) 引言: 近些年来,"预测"一词在各个领域被频繁提及,所谓预测,实际上就是根据历史规律,推测未来结果.在科学技 ...
- Pandas处理时序数据(初学者必会)!
↑↑↑关注后"星标"Datawhale每日干货 & 每月组队学习,不错过Datawhale干货 作者:耿远昊,Datawhale成员,华东师范大学 时序数据是指时间序列数据 ...
- 积微论坛报告视频+PPT:用微生物组时序数据重现生物膜装配动态过程
点击阅读原文观看视频!后台回复"王金锋"获得视频和讲稿下载链接. 用微生物组时序数据重现生物膜装配动态过程 主讲人介绍 王金锋,博士.2011年入职中国科学院北京生命科学研究院工作 ...
- pandas基于时序数据计算模型预测推理需要的统计数据(累计时间、长度变化、变化率、方差、均值、最大、最小等):范围内的统计量、变化率、获得数据集最后的几条数据的统计量、变化率、获得范围内的统计量
pandas基于时序数据计算模型预测推理需要的统计数据(累计时间.长度变化.变化率.方差.均值.最大.最小等):范围内的统计量.变化率.获得数据集最后的几条数据的统计量.变化率.获得范围内的统计量 目 ...
- R语言window函数提取时序数据数据子集(subset):使用xts包将dataframe数据转化为时间序列数据(time series)、使用window函数从时间序列对象中提取数据子集
R语言window函数提取时序数据数据子集(subset):使用xts包将dataframe数据转化为时间序列数据(time series).使用window函数从时间序列对象中提取数据子集 目录
- pandas基于时序数据计算模型预测推理需要的统计数据(累计时间、长度变化、变化率、方差、均值、最大、最小等):数据持续的时间(分钟)、获得某一节点之后的数据总变化量、获得范围内的统计量
pandas基于时序数据计算模型预测推理需要的统计数据(累计时间.长度变化.变化率.方差.均值.最大.最小等):数据持续的时间(分钟).获得某一节点之后的数据总变化量.获得范围内的统计量 目录
- python使用pandas通过聚合获取时序数据的最后一个指标数据(例如长度指标、时间指标)生成标签并与原表连接(join)进行不同标签特征的可视化分析
python使用pandas通过聚合获取时序数据的最后一个指标数据(例如长度指标.时间指标)生成标签并与原表连接(join)进行不同标签特征的可视化分析 目录
- 手把手教你用Python玩转时序数据,从采样、预测到聚类
本文经AI新媒体量子位(公众号 ID: QbitAI)授权转载,转载请联系出处 本文约1800字,建议阅读5分钟 如果你有朝一日碰到了时序数据,该怎么用Python搞定它呢? 时序数据,也就是时间序列 ...
- 数据蒋堂 | 时序数据从分表到分库
作者:蒋步星 来源:数据蒋堂 本文共5500字,建议阅读10+分钟. 一个物理表的数据量太大时,就会影响查询和计算的性能. 这里的时序数据泛指一切随时间推移而不断增长的数据,比如通话记录.银行交易记录 ...
- 时序数据采样、原始循环神经网络RNN、RNN梯度爆炸原因推导
时序数据的采样 随机采样 每个样本是原始序列上任意截取的一段序列.相邻的两个随机小批量在原始序列上的位置不一定相毗邻.因此,我们无法用一个小批量最终时间步的隐藏状态来初始化下一个小批量的隐藏状态.在训 ...
最新文章
- mysql创建库几种方法_MySQL创建数据库的两种方法
- ICRA 2021 | π-LSAM:基于平面优化的激光雷达平滑与建图算法
- java中map怎么遍历,Java中怎么遍历Map的所有的元素
- CodeGlance
- SPOJ 4110 Fast Maximum Flow (最大流模板)
- linux内核内存分配(三、虚拟内存管理)
- CentOS7安装Jenkins Master
- mysql关联查询去重_mysql | 去重查询
- 一 集成电路与IP核技术
- 几个代码画出漂亮的词云图,python最简单的词云图教程(建议收藏)
- 多机器人系统实验室汇总
- VS无法定位程序输入点于动态链接库
- operands could not be broadcast together with shapes
- 读书随笔(6)密码恢复
- iPhones刷机怎么备份微信记录 iPhone手机微信记录怎么备份
- 【python实战】不让我复制?看我自制个带文字识别的截屏工具
- win10家庭版调出组策略(gpedit.msc)要求的函数不受支持
- 技术人员近业务,会困死在一条船上吗?
- 八字易经算法之用JAVA实现日子吉凶星
- 2017年计算机考研408操作系统真题(客观题)
热门文章
- 超越微支付:纳米服务的崛起
- 9008刷机 小米max2_小米手机9008短接图,可进行深度刷机解锁操作!―远程580快修...
- 【分圆多项式及理想、理想格】
- 微信跳一跳 可以直接更改分数,跳一跳POST改分数攻略
- DJI Terra+EasyEarth让数据获取与应用无缝衔接
- 多表查询,字段名重复问题解决
- Pepper中级教程:第二章 如何将Python程序部署到机器人内部运行
- mysql ecos_ecos代码分析(4)
- [学习笔记] Pell方程
- 递归:Pell数列C++实现