我有一个数据帧:import pandas as pd

df = pd.DataFrame([['A', 'G1', '2019-01-01', 11],

['A', 'G1', '2019-01-02', 12],

['A', 'G1', '2019-01-04', 14],

['B', 'G2', '2019-01-01', 11],

['B', 'G2', '2019-01-03', 13],

['B', 'G2', '2019-01-06', 16]],

columns=['cust', 'group', 'date', 'val'])

df

^{pr2}$

数据帧被分组,现在我想计算pct_change,但前提是有以前的日期。

如果我这样做:df['pct'] = df.groupby(['cust', 'group']).val.pct_change()

df

我将得到pct_change,但不考虑丢失的日期。

例如,在组('A', 'G1')中,日期2019-01-04的pct应该是{},因为没有(上一个)日期2019-01-03。在

也许解决方案是按天重新采样,其中每个新行将np.nan作为val,然后再做{}。在

我试图使用df.resample('1D', level=2),但是我得到一个错误:TypeError: Only valid with DatetimeIndex, TimedeltaIndex or PeriodIndex, but got an instance of 'MultiIndex'

对于组('B', 'G2'),所有pct_change应该是np.nan,因为没有一行有上一个日期。在

预期结果为:

如何计算关于缺失日期的pct_change?在

解决方案:new_df = pd.DataFrame()

for x, y in df.groupby(['cust', 'group']):

resampled=y.set_index('date').resample('D').val.mean().to_frame().rename({'val': 'resamp_val'}, axis=1)

resampled = resampled.join(y.set_index('date')).fillna({'cust':x[0],'group':x[1]})

resampled['resamp_val_pct'] = resampled.resamp_val.pct_change(fill_method=None)

new_df = pd.concat([new_df, resampled])

new_df = new_df[['cust', 'group', 'val', 'resamp_val', 'resamp_val_pct']]

new_df

python pct_change_在pct_change()和缺失值之前重新采样相关推荐

  1. python中的pct_change用法

    ** **python中的pct_change用法: ** 代码: ** s=pd.Series([1,2,3,4,5]) print('periods=1,(当前值-前1值)/前1值') print ...

  2. python和R对dataframe的拼接、采样、链式操作:dplyr、tidyr、concat、rbind、cbind、sample、sample_n、set.seed、mutate、filter

    python和R对dataframe的拼接.采样.链式操作:dplyr.tidyr.concat.rbind.cbind.sample.sample_n.set.seed.mutate.filter. ...

  3. python使用imbalanced-learn的ClusterCentroids方法进行下采样处理数据不平衡问题

    python使用imbalanced-learn的ClusterCentroids方法进行下采样处理数据不平衡问题 机器学习中常常会遇到数据的类别不平衡(class imbalance),也叫数据偏斜 ...

  4. python使用imbalanced-learn的AllKNN方法进行下采样处理数据不平衡问题

    python使用imbalanced-learn的AllKNN方法进行下采样处理数据不平衡问题 机器学习中常常会遇到数据的类别不平衡(class imbalance),也叫数据偏斜(class ske ...

  5. python使用imbalanced-learn的NearMiss方法进行下采样处理数据不平衡问题

    python使用imbalanced-learn的NearMiss方法进行下采样处理数据不平衡问题 机器学习中常常会遇到数据的类别不平衡(class imbalance),也叫数据偏斜(class s ...

  6. python使用imbalanced-learn的TomekLinks方法进行下采样处理数据不平衡问题

    python使用imbalanced-learn的TomekLinks方法进行下采样处理数据不平衡问题 机器学习中常常会遇到数据的类别不平衡(class imbalance),也叫数据偏斜(class ...

  7. python使用imbalanced-learn的OneSidedSelection方法进行下采样处理数据不平衡问题

    python使用imbalanced-learn的OneSidedSelection方法进行下采样处理数据不平衡问题 机器学习中常常会遇到数据的类别不平衡(class imbalance),也叫数据偏 ...

  8. python使用imbalanced-learn的SMOTE方法进行上采样处理数据不平衡问题

    python使用imbalanced-learn的SMOTE方法进行上采样处理数据不平衡问题 机器学习中常常会遇到数据的类别不平衡(class imbalance),也叫数据偏斜(class skew ...

  9. python使用imbalanced-learn的SVMSMOTE方法进行上采样处理数据不平衡问题

    python使用imbalanced-learn的SVMSMOTE方法进行上采样处理数据不平衡问题 机器学习中常常会遇到数据的类别不平衡(class imbalance),也叫数据偏斜(class s ...

最新文章

  1. 魔术方法php,PHP中常用的魔术方法
  2. pythonexcel表格教程_python对excel表格的操作
  3. 屏蔽Xcode 8“烦人”的日志输出
  4. 在线课程学习、科研科技视频网站
  5. 你必须知道的容器监控 (1) Docker自带子命令与Weave Scope
  6. react部署在node_如何在没有命令行的情况下在3分钟内将React + Node应用程序部署到Heroku
  7. sqliteorm的sync_schema介绍
  8. ASP.NET技巧:字符自动截取问题
  9. 数字信号处理(第四版)pdf
  10. 5V升压充电12.6V锂电池方案
  11. pythonpost请求json_将JSON字符串作为post请求发送
  12. python泰坦尼克号数据分析_Python实战—泰坦尼克号生还者数据分析
  13. 个人所得税计算java版
  14. 【阿里在线技术峰会】魏鹏:基于Java容器的多应用部署技术实践
  15. DeepLearning论文阅读笔记(一):Cyclical Learning Rates for Training Neural Networks(CLR)
  16. Linux实现ISCSI共享设备
  17. MT8127芯片资料下载,联发科技MTK资料分享
  18. 请写出sfr和sbit的语句格式_KEIL中的SFR和SBIT用法
  19. 给拯救者Y7000换个固态
  20. J storm战队成员_J.Storm战队踢掉队内三号位Forev主动扣分

热门文章

  1. 小心踩雷!手把手教你制作扫雷游戏简单版本
  2. PCL教程-点云分割之圆柱体分割
  3. c语言 accept,AcceptEx浅析(转)
  4. Spring AOP -- execution表达式
  5. 题目2-1 where is the flag
  6. 双重预防机制数字化管理平台赋能施工企业安全生产
  7. 南宁有几家机器人餐厅_全国首家机器人自助餐厅开业 20多种机器人亮相
  8. Our Collectors
  9. c语言ofstream头文件,【c++】c++中的ofstream和ifstream
  10. ofstream 若文件不存在_C++文件操作详解(ifstream、ofstream、fstream)