python - 如何计算两个连续行的条目并在新数据框中仅保留第二行?
问题描述
我有这样一个数据框:
DATE | VALUE
23/07/21 01 | 20
23/07/21 02 | 10
23/07/21 03 | 15
23/07/21 04 | 200
我想要得到的是新的数据框,它总结了 column 的两个连续行的VALUE
条目并保留 column 的第二行的条目DATE
。
它应该看起来像这样:
DATE | VALUE
23/07/21 02 | 30
23/07/21 04 | 215
我怎样才能做到这一点?
解决方案
您可以尝试rolling
:
>>> df.set_index("DATE").rolling(2).sum().iloc[1::2].reset_index()
DATE VALUE
0 2021-07-21 02 30.0
1 2021-07-21 04 115.0
使用更大的 DataFrame,这变得相当快:
df = pd.concat([df]*1000)
>>> %timeit df.set_index("DATE").rolling(2).sum().iloc[1::2].reset_index()
1.33 ms ± 15.9 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)
>>> %timeit df.groupby(np.arange(len(df))//2).agg({'DATE':'last', 'VALUE':'sum'})
2.15 ms ± 108 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)
推荐阅读
- git - 从最后一次 git 提交中提取块而不重新提交原始提交
- wordpress - 如何将自定义分类法附加到 Wordpress 中的帖子?
- xna - 无法从 XNA Framework C# 上的另一个类接收值
- java - 如何强制 Hibernate 在更新查询中使用 AND?
- sql - 使用 CONVERT 在动态 SQL 中处理 COALESCE
- python - Python 给定日期、时间、小时......我怎样才能得到它的格式 ISO ZULU
- arrays - 追加到数组的开头(在第一项之前),而不是 Swift 中的末尾
- c# - 为什么datagridview中会自动生成重复的列
- php - PHP MYSQL 选择多个变量在哪里
- python-3.x - 在使用 tensorflow keras 时,我收到错误消息说添加的层必须是类的实例,对于第一个 conv2D 层