时间序列数据在数据科学项目中很常见。 通常,可能会对将时序数据重新采样到要分析数据的频率或从数据中汲取更多见解的频率感兴趣。

在本文中,我们将介绍一些使用Pandas resample()函数对时间序列数据进行重采样的示例。 我们将介绍以下常见问题,并应帮助您开始使用时序数据操作。下采样并执行聚合

使用自定义基数进行下采样

上采样和填充值

一个实际的例子

向下采样和执行聚合

下采样是将一个时间序列数据集重新采样到一个更大的时间框架。例如,从几分钟到几小时,从几天到几年。结果的行数将减少,并且可以使用mean()、min()、max()、sum()等聚合值。

让我们通过一个示例来了解它是如何工作的。

假设我们有一个关于销售的数据集。

df_sales = pd.read_csv(

'sales_data.csv',

parse_dates=['date'],

index_col=['date']

)

要获得每2小时添加的总销售额,只需使用resample()将DataFrame向下采样到2小时的容器中,并将落入容器中的时间戳的值相加。

df_sales.resample('2H').sum()

要执行多个聚合,我们可以向agg()方法传递一个聚合函数列表。

df_sales.resample('2H').agg(['min','max', 'sum'])

使用自定义基数向下采样

默认情况下,对于平均细分为1天/月/年的频率,聚合间隔的“原点”默认为0。所以2H频率的结果范围是00:00:00,02:00:00,04:00:00,…,22:00:00。

对于我们正在使用的销售数据,第一个记录的日期值为2017-01-02 09:02:03,因此将输出范围从09:00:00开始比从08:00开始更有意义。为此,我们可以使用参数base将聚合间隔的“原点”设置为不同的值,例如,set base=1,这样结果范围就可以从09:00:00开始。

df_sales.resample('2H', base=1).sum()

上采样和填充值

上采样是下采样的相反操作。它将时间序列数据重新采样到一个更小的时间框架。例如,从小时到分钟,从年到天。结果将增加行数,并且附加的行值默认为NaN。内置的方法ffill()和bfill()通常用于执行前向填充或后向填充来替代NaN。

让我们为演示创建一个DataFrame。

df = pd.DataFrame(

{ 'value': [1, 2, 3] },

index=pd.period_range(

'2012-01-01',

freq='A',

periods=3

)

)

按季度重新采样一年并向前填充值。前向填充方法ffill()将使用最后一个已知值来替换NaN。

df.resample('Q').ffill()

按季度重新采样一年并向后填充值。向后填充方法bfill()将使用下一个已知值来替换NaN。

df.resample('Q').bfill()

一个实际的例子

让我们看看如何使用Pandas resample()来处理一个现实世界的问题。

假设我们有两个数据集,一个是月销售额dfsales,另一个是价格dfprice。df_price只有关于价格变化的记录。

我们想计算一下每个月的销售总额,下面是预期的产量。

这个计算中比较困难的部分是,我们需要检索每个月的价格,并将其合并到数据中,以便计算总价格。

一种简洁的解决方案是使用Pandas的resample()函数。一行代码可以检索每个月的价格。

步骤1:按月重新取样价格数据集,并向前填充值

df_price = df_price.resample('M').ffill()

通过调用resample('M')来按月重新采样给定的时间序列。在此之后,调用ffill()来转发填充值。你是不是有点困惑?查看下面的图片了解细节。

步骤2:结合结果并计算总销售额

df = pd.concat([df_sales, df_price], axis = 1)

df['total_sales'] = df['num_sold'] * df['price']

使用参数axis=1的Pandas concat()函数水平组合dfsales和dfprice。在此之后,可以使用元素方面的乘法df['num_sold'] * df['price']来计算总销售额。

通过执行上述语句,您应该得到如下输出:

结论

Pandas resample()函数是一个简单、强大、高效的函数,用于在频率转换期间执行重采样操作。

我希望本文能帮助您节省分析时间序列数据的时间。我建议您查看resample() API的文档,了解您可以做的其他事情。

感谢你的阅读。如果您对机器学习的实践方面感兴趣,请查看笔记本以获取源代码,请继续关注。

作者:B. Chen

deephub翻译组

python resample函数_使用Pandas的resample函数处理时间序列数据的技巧相关推荐

  1. resample函数_使用Pandas的resample函数处理时间序列数据的技巧

    时间序列数据在数据科学项目中很常见. 通常,可能会对将时序数据重新采样到要分析数据的频率或从数据中汲取更多见解的频率感兴趣. 在本文中,我们将介绍一些使用Pandas resample()函数对时间序 ...

  2. 使用Pandas的resample函数处理时间序列数据的技巧

    时间序列数据在数据科学项目中很常见. 通常,可能会对将时序数据重新采样到要分析数据的频率或从数据中汲取更多见解的频率感兴趣. 在本文中,我们将介绍一些使用Pandas resample()函数对时间序 ...

  3. python绘制直方图的函数_(六)pyplot基础图表函数(学习笔记)|python数据分析与展示...

    1.pyplot基础图表函数概述 2.pyplot图饼的绘制 3.pyplot直方图的绘制 4.pyplot极坐标图的绘制 5.pyplot散点图的绘制 6.单元小结 [网页链接[Python数据分析 ...

  4. python重要的第三方库pandas模块常用函数解析之DataFrame

    pandas模块常用函数解析之DataFrame 关注公众号"轻松学编程"了解更多. 以下命令都是在浏览器中输入. cmd命令窗口输入:jupyter notebook 打开浏览器 ...

  5. python imshow参数_用matplotlib中imshow()函数绘图

    matplotlib 是python最著名的2D绘图库,它提供了一整套和matlab相似的命令API,十分适合交互式地进行制图.而且也可以方便地将它作为绘图控件,嵌入GUI应用程序中.通过简单的绘图语 ...

  6. python多项式拟合_最小二乘法—多项式拟合非线性函数

    本章涉及到的知识点清单: 1.函数的近似表示-高次多项式 2.误差函数-最小二乘法 3.引出案例函数曲线 4.目标函数 5.优化目标函数 6.优化目标函数-梯度下降法 7.优化目标函数-求解线性方程组 ...

  7. hive substr函数_数据分析工具篇——HQL函数及逻辑

    本篇文章我们梳理一下hive常用的函数,对于hive而言,常用的函数并不是特别多,往往记住关键几个,就可以解决80%的问题,这也是大家喜欢hive的原因,那么,常用的函数有哪些呢? 时间函数 1)时间 ...

  8. decode函数_「实践」云函数 + API,你也可以做个天气信息系统

    为什么要把云函数 SCF 与 API 网关进行结合?本文告诉你答案! 通常,我们用云函数 SCF 写一个函数应用,这个应用可能多种多样.例如之前介绍过的 OJ 系统判题功能,通过 NLP 实现文本摘要 ...

  9. subtotal函数_用SUBTOTAL更改Excel函数

    subtotal函数 We looked at the Excel SUBTOTAL function on Friday, and saw how it works with hidden rows ...

最新文章

  1. 《Imperfect C++中文版》——第2章 对象生命期
  2. android访问html页面
  3. 2017蓝桥杯:承压计算
  4. gh0st源码分析与远控的编写(二)
  5. windows系统里懒人的福音,如何实现不按住ctrl实现文件多选
  6. 正在中止线程 iis_Zephyr线程生命周期及状态
  7. python中以下关于列表描述错误的_在Python中,以下关于函数的描述错误的是哪一项?...
  8. [译] Vue: scoped 样式与 CSS Module 对比
  9. 人力资源管理系统需求分析说明书
  10. 排队 / 叫号 / 取号 模块使用教程
  11. Unity声音组件AudioSource简介与用法
  12. 大数据分析:原著 PK 电影,谁更得观众心?
  13. 死链接检查工具:Xenu 使用教程
  14. 华为路由器接口如何区分_华为路由器接口管理命令有哪些
  15. 京东笔试——神奇数 【题目描述】东东在一本古籍上看到有一种神奇数,如果能够将一个数的数字分成两组,其中一组数字的和 等于另一组数字的和,我们就将这个数称为神奇数。例如 242 就是一个神奇数,我们能够
  16. 游戏项目框架(属性名+方法名)
  17. 记一次docker进不去容器的经历
  18. Week11——C密文
  19. bash:xxxx: 权限不够解决办法
  20. 牛客练习赛24(18.08.10)

热门文章

  1. linux运维视频教程 linux培训视频
  2. pkgsearch搜索和查询CRAN R包_2021-01-26
  3. 一阶rc matlab,matlab – 一阶RC滤波器的时间离散实现
  4. 知识图谱实战应用11-基于py2neo构建一个简单的问答功能
  5. 设置语言为中文,重启手机后桌面数字时钟,“星期五“变成“Friday“
  6. 集群部署时的分布式 Session 如何实现?
  7. 机器视觉中的视觉引导定位系统
  8. JavaScript字符串方法
  9. 数据收集-抓包与反爬
  10. 案例|PIGOSS TOCBSM完美结合,服务于首信社保部