利用Python进行数据分析(9)-重采样resample和频率转换Python-for-data-重新采样和频率转换
重新采样指的是将时间序列从一个频率转换到另一个频率的过程 。
但是也并不是所有的采样方式都是属于上面的两种
pandas中使用resample方法来实现频率转换python聚合函数,下面是resample方法的参数详解:
将数据聚合到一个规则的低频上python聚合函数,例如将时间转换为每个月python聚合函数 , "M"或者"BM"python聚合函数,将数据分成一个月的时间间隔 。
每个间隔是半闭合的 , 一个数据只能属于一个时间间隔 。时间间隔的并集必须是整个时间帧
默认情况下,左箱体边界是包含的 。00:00的值是00:00到00:05间隔内的值
产生的时间序列按照每个箱体左边的时间戳被标记 。
传递span class="mark"label="right"/span可以使用右箱体边界标记时间序列
向loffset参数传递字符串或者日期偏置
在金融数据中 , 为每个数据桶计算4个值是常见的问题:
通过span class="girk"ohlc聚合函数/span能够得到四种聚合值列的DF数据
低频转到高频的时候会形成缺失值
ffill() :使用前面的值填充, limit 限制填充的次数
数据蛙-Python进阶这是漫长的一周,本周完成了Python的进阶模块,主要是pandas、numpy、matplotlib、seaborn、pyecharts这些模块的学习以及一个实际的案例:商品销售情况分析,之前一直觉得课程难度不够 , 但到这一周难度就大大提高了 。尤其是案例练习中的RFM模型和用户生命周期建立,看懂不难但是自己写一直出错,在不断出错不断尝试中知识得到了积累,另外可视化部分没有什么练习题 , 希望后面可以加上一些这方面的练习,接下来分模块来总结一下学习的内容 。
重新设置索引:df.set_index()
Series格式转换为DataFrame:df.to_frame()
文件读?。簆d.read_csv(filepath, header = 0,skiprows=[1,2])
使用位置做索引:df.loc[0]使用列表做索引:df.loc[[0,1,2]]
使用切片做索引:df.loc[0:4]使用bool类型索引:df[df['年龄']30]
loc 是基于索引值的,切片是左闭右闭的
iloc 是基于位置的 , 切片是左闭右开的
修改列索引:df.rename(columns={'姓名':'name', '年龄':'age'},inplace=True)
替换一个值:df.replace({'name':{'小明':'xiaoming'}},inplace=True)
对数据进行排序:df.sort_values('age')
累加求和:df.cumsum(0)
删除列:del df['player']删除行:df.drop(labels=0) labels 是行列的名字
数据拼接:pd.concat([left,right],axis=1)
# 指定列进行关联,默认是 inner joinresult = pd.merge(left,right,on='key')
#多个关联条件:result = pd.merge(left, right, on=['key1', 'key2'])
#左连接:result = pd.merge(left, right, how='left', on=['key1', 'key2'])
# 列名不一样的关联:pd.merge(left,right,left_on = ['key1','key2'],right_on = ['key3','key4'])
#单个分组:groups = df.groupby('district')
# 作用多个聚合函数:groups.agg([np.mean,np.sum,np.std])
# 针对具体列聚合 groups.age.agg([np.mean,np.sum,np.std])
# 不同列不同聚合函数 groups.agg({"age":np.mean,"novip_buy_times":np.sum})
分组后该列值求和显示:groups['vip_buy_times'].transform('sum')
通常用于求占比:transform(lambda x: x /sum(x))
# 填充指定值:np.full([3,4],1)
# 起始为10,5为步长,30为结尾取不到:np.arange(10, 30, 5)
#随机矩阵:np.random.random((2,3))
# 平均划分:np.linspace( 0, 2*pi, 100 )
# 类型及转换:vector.astype('float')
# 多维变一维:matrix.ravel()
# 矩阵的扩展:a = np.arange(0, 40, 10)b = np.tile(a, (3, 5))# 行变成3倍,列变成5倍
推荐阅读
- 斗鱼直播小黑鸽,斗鱼小白鸽的黑料
- 小米电视机是什么型号,小米电视机是什么型号的
- 新媒体如何找准方向发展,新媒体如何创新发展
- linux文件恢复命令 linux 恢复误删文件
- gis怎么删除特定字符前后的字,arcgis怎么删除属性表里的特定字段
- 怎么把游戏转成ios,游戏怎么转苹果
- 山西直播带货平台文案策划,直播带货的宣传文案
- mysql怎么连接 腾讯云mysql怎么连接
- 杭州抖音销售效果如何推广,杭州抖音广告投放