python - 根据条件减少数据框中的行数
问题描述
我有一个由 9821 行和一列组成的数据框。其中的值以 161 个为一组列出 61 次 (161X61=9821)。我需要将每组 161 的前 2 个值替换为这 2 个值的平均值,从而将行数减少到 9660(161X60=9660)。更简单地说,在我现有的数据框中,需要对以下几组索引 (0, 1), (61, 62) ... (9760, 9761) 进行平均,以获得具有 9660 行的新数据框。有任何想法吗?
这就是我所拥有的(4 组生产 3 次 - 4X3=12):
0 10
1 11
2 12
3 13
4 14
5 15
6 16
7 17
8 18
9 19
10 20
11 21
这就是我想要的(3 组生产 3 次 - 3X3=9):
0 10.5
1 12
2 13
3 14.5
4 16
5 17
6 18.5
7 20
8 21
解决方案
我对这个答案不太满意,但我把它放在那里供审查。
>>> df[df.index%4 == 0] = df.groupby(df.index//4).apply(lambda s: s.iloc[:2].mean()).values
>>> df = df[:-3]
>>> df
0
0 10.5
1 11.0
2 12.0
3 13.0
4 14.5
5 15.0
6 16.0
7 17.0
8 18.5
推荐阅读
- android - 两行约束布局
- python - 当我试图通过 BeautifulSoup 获取它时,它变成空的
我正在尝试从网站解析表格
https://www.kp.ru/best/kazan/abiturient_2018/ivmit/
。Chrome 的 DevTools 向我展示了该表:<div class="t431__table-wapper" data-auto-correct-mobile-width="false"> <tab
- python - .csv 加载重复每个单元格中一列中的所有条目
- python - 从python for循环函数返回一个值
- javascript - 与 Angular 等其他主要 JS 框架不同,为什么 ReactJS 需要这么多外部工具来构建应用程序?
- macos - 如何创建一个接受字符串并将其转换为另一个托管字符串的脚本?
- autosar - AUTOSAR 中如何实现 C/S RTE 端口?
- java - 至少提供了 2 个参数,但在使用规范和排序的查询中仅存在 1 个参数
- java - javassist中如何知道一个字段属于哪个对象实例?
- python - python中的K-Prototypes“IndexError:数组索引过多”