python - 每次求和通过某个阈值时如何重新采样?

标签 python python-3.x pandas

如果我有一个像这样的 pandas 数据框:

 df = pd.DataFrame([
     ['A' ,0],['B', 2 ],['C', 2],['D', 1],
     ['E', 3 ],['F', 2 ],['G', 1],['H', 3],['I', 2 ]
], columns=['l', 'A'])
    A
  A 0 
  B 2 
  C 2
  D 1
  E 3 
  F 2 
  G 1
  H 3
  I 2 

如何对数据进行重新采样,以便在加起来 5 后提取最接近的值,从而得到如下所示的数据框:

     A
   D 1
   F 2
   I 2

最佳答案

您可以使用 pandas cumsum() 函数按累积和进行分组,然后除以 5 并保留新被除数的整数值的第一次出现。例如:

df['cumsum'] = (df['A'].cumsum()//5).replace(0,np.nan)
df.groupby('cumsum').first() ## keep first

Out[1]:
        l   A
cumsum      
1.0     D   1
2.0     F   2
3.0     I   2

关于python - 每次求和通过某个阈值时如何重新采样?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57580911/

相关文章:

python - 是否有理由更喜欢 __slots__ 的列表或元组?

python - 如何使用 django 每隔几秒运行一次后台作业

python - 除了不使用查找错误python

python - Pandas 散点图中的刻度标签未正确绘制

python - 使用 groupby 创建具有最大值的新列

python - 在jupyter dockerfile中创建非root用户

python - UNION ALL 参数化查询

python - 在处理 Flask 请求的同一服务器上运行 Celery 任务

python - 用于查找列表/集合中唯一元素的代码

python按两列分组,按一个索引提取第一个元素