从具有可变时间步长的模拟数据我有一个不规则的时间向量作为我的值的索引,它们存储在pandas.DataFrame中.

让我们考虑一个简化的测试用例:

import pandas as pd

import datetime

time_vec = [datetime.time(0,0),datetime.time(0,0),datetime.time(0,5),datetime.time(0,7),datetime.time(0,10)]

df = pd.DataFrame([1,2,4,3,6],index = time_vec)

使用正常的df.mean()函数将得到答案3.2,只有当时间向量是等距的时才会出现这种情况.

我认为正确的结果是3.55,第一个时间步长(零秒长),平均值是1.5,对于第二个时间步,平均值是3(五分钟长)等,这导致:

1.5 * 0 + 3*5 + 3.5 * 2 + 4.5 * 3 = 35.5

结果平均为3.55(35.5 /(0 5 2 3)).

有没有一种有效的方法来做大熊猫?

这应该最终会产生类似的结果

df.resample('15M',how = 'This very Method I am looking for')

用等距时间向量创建平均值.

解决方法:

好吧,我想出了如何解决我的问题.我不知道,如果这是一个很好的解决方案,但它的确有效.

我通过datetime.datetime交换datetime.time来更改问题中的原始代码,否则它将无效(datetime.time-Objects没有方法total_seconds()).我还必须导入numpy才能使用numpy.average.

所以现在的代码是:

import datetime

import numpy as np

import pandas as pd

time_vec = [datetime.datetime(2007,1,1,0,0)

,datetime.datetime(2007,1,1,0,0)

,datetime.datetime(2007,1,1,0,5)

,datetime.datetime(2007,1,1,0,7)

,datetime.datetime(2007,1,1,0,10)]

df = pd.DataFrame([1,2,4,3,6],index = time_vec)

这个小功能解决了我的问题:

def time_based_weighted_mean(tv_df):

time_delta = [(x-y).total_seconds() for x,y in zip(df.index[1:],df.index[:-1])]

weights = [x+y for x,y in zip([0]+ time_delta,time_delta+[0])]

res = np.average(df[0],weights = weights)

return res

print time_based_weighted_mean(df[0])

我首先尝试使用pd.index.diff()来计算time_delta-Array,但这导致了一个numpy.datetime64系列,我不知道如何将它们转换为浮点数,因为np.average需要浮点数作为输入 – 重量类型.

我很感谢任何改进代码的建议.

标签:python,pandas,weighted-average

来源: https://codeday.me/bug/20190703/1362895.html

pandas算加权平均值_python – 为pandas中的不规则时间序列创建加权平均值相关推荐

  1. python pandas筛选数据_Python基础 | pandas中数据的筛选(index subset)

    本文数据可在此处下载,密码:vwy3 # 加载数据 import pandas as pd # 数据是之前在cnblog上抓取的部分文章信息 df = pd.read_csv('./data/SQL测 ...

  2. python pandas excel数据处理_Python利用pandas处理Excel数据的应用

    python如何将列表导出为csv文件 import pandas as pd list=[[1,2,3],[4,5,6],[7,8,9]] column=['column1','column2',' ...

  3. python pandas 条件求和_python 使用pandas计算累积求和的方法

    python 使用pandas计算累积求和的方法 使用pandas下的cumsum函数 cumsum:计算轴向元素累积加和,返回由中间结果组成的数组.重点就是返回值是"由中间结果组成的数组& ...

  4. excel去掉一行文字中的逗号合并在一起_Python使用pandas库五行代码合并excel

    使用用Python快速合并excel,相比使用VBA代码更简洁,但是使用到 glob 和pandas 两个库,其中glob为标准库无需安装,pandas需要pip安装.代码如下: import 代码解 ...

  5. pandas 对某一行标准化_Python中的神器Pandas,但是有人说Pandas慢...

    如果你从事大数据工作,用Python的Pandas库时会发现很多惊喜.Pandas在数据科学和分析领域扮演越来越重要的角色,尤其是对于从Excel和VBA转向Python的用户. 所以,对于数据科学家 ...

  6. python获取列表长度方法_python - 在Pandas df列中获取有关列表长度(平均长度,最大长度等)的统计信息的大多数pandas-onic方法 - 堆栈内存溢出...

    我想获取有关pandas df列中列表长度的统计信息,例如平均长度,最低,最高,标准差等. 例: import pandas as pd dfp = pd.DataFrame( {'trial_num ...

  7. python中pandas是指什么_Python中的神器Pandas,但是有人说Pandas慢...

    原标题:Python中的神器Pandas,但是有人说Pandas慢... 如果你从事大数据工作,用Python的Pandas库时会发现很多惊喜.Pandas在数据科学和分析领域扮演越来越重要的角色,尤 ...

  8. mysql中两列拼接_python之Pandas读写操作mysql数据库

    官方介绍:pandas的官方手册:https://pandas.pydata.org/pandas-docs/stable/pandas官方读写数据文档:https://pandas.pydata.o ...

  9. python中绘制折线图s是什么意思_python用pandas和matplotlib画折线图和条形图

    一.数据 数据是支付宝上收益周周乐从2019年9月21日到2020年3月21日共27期开奖结果,做此次分析是为了提高中奖的几率, 二.代码 1:pandas读取csv文件 import pandas ...

  10. python数据分析最基本的库_Python数据分析库pandas基本操作方法_python

    下面就为大家分享一篇Python数据分析库pandas基本操作方法,具有很好的参考价值,希望对大家有所帮助.一起过来看看吧 pandas是什么? 是它吗? ....很显然pandas没有这个家伙那么可 ...

最新文章

  1. html创建等边三角形,CSS3 等边三角形组成星形图案
  2. 囊括三大视觉顶会,行人重识别新基准方法AGW!已被TPAMI录用
  3. jQuery之文本框得失焦点
  4. 如何让html重点表单自动对齐,html – 如何对齐多个表单元素?
  5. 辅助类KeyNode
  6. 【dfs】【树】机器选择
  7. php签入html出来的影响seo吗_搜索引擎优化_SEO必备6大技能+SEO误区讲解!
  8. scrolling=no 无法根据坐标获取元素_科曼尼KOMANIE三坐标测量仪命令不执行【维修】北京303所...
  9. 程序员不会SQL有多难?高级工程师:可能工作都找不到!
  10. 铝电解电容总结[转]
  11. DeepFake技术--DeepFakes 概述(一)(二)
  12. 阶段3 2.Spring_04.Spring的常用注解_1 今日课程内容介绍
  13. 2022安徽合肥经济技术开发区招聘社区工作者冲刺试题及答案
  14. Container is restarting, wait until the container is running
  15. 现有数据整合方案介绍
  16. 对接萤石平台调用播放
  17. Java多线程实现跑步比赛【比赛详解】
  18. 三方协议,劳动合同,劳务合同的区别
  19. android ListView中含有按钮事件实时更新ListView数据案例-1
  20. android6.0原生壁纸,惊呆了!安卓6.0壁纸竟然是这样得来的

热门文章

  1. 《第一篇》二进制部署高可用K8S集群v1.24.2及运维(亲测无坑)
  2. 电视剧《都挺好》弹幕数据分析
  3. Diffie-hellman 密匙交换
  4. 知识兔课程揭秘2021抖音卖货代运营的新骗局,你中招了吗?
  5. 如何linux删除文件夹,Linux系统下如何删除文件夹
  6. C# winform 界面美化技巧(扁平化设计)
  7. 打印目录和更新时就会出现“错误!未定义书签!”的解决技巧
  8. 解决vs2008安装问题 Office 2007 Microsoft Visual Studio Web 创作组件 安装失败
  9. 笔记本什么都没开,风扇为什么一直转?——CDPUserSvc服务
  10. ubuntu开机后nvidia驱动突然消失,nvidia显卡驱动卸载与安装