python - 按 n 连续行聚合 pandas 数据帧
问题描述
我有一个 OHLC 类型的 pandas 数据框(打开、高、低、关闭),我试图重新采样它,不使用日期,而是简单地聚合 2 个连续的行(理想情况下从数据框的底部开始,这意味着最后一个行将始终与另一行聚合,即使初始数据帧的行数不是偶数):
df = pd.DataFrame( {'Open':[1,2,3,4], 'High':[7,10,8,7], 'Low':[0,1,2,3], 'Close':[4,2,7,4]})
Out[6]:
Open High Low Close
0 1 7 0 4
1 2 10 1 2
2 3 8 2 7
3 4 7 3 4
所需的输出是:
Open High Low Close
0 1 10 0 2
1 3 8 2 4
我试图逐列实现这一点,然后将它们聚合以形成最终的数据框:
df2_high = df['High'].groupby(df.index // 2).max()
df2_low = df['Low'].groupby(df.index // 2).min()
...但我很难看到如何确定 df2_open 和 df2_low,它们分别是第一行的 Open 值和第二行的 Close?
希望有一种优雅的方式来做到这一点?
解决方案
与groupby
+一起做agg
s = df.groupby(df.index//2).agg({'Open':'first','High':'max','Low':'min','Close':'last'})
Open High Low Close
0 1 10 0 4
1 3 8 2 7
推荐阅读
- spring - 无法使用 JdbcTemplate 更改 Oracle 会话
- python - Bash While Loop Continue 尽管非 0 返回
- c# - C#中未处理的异常处理
- ios - 在使用 VIPER 的许多控制器上使用的功能在哪里更好?
- excel - 连续计算Excel单元格直到达到总和?
- jquery - 立即从输入中删除数字不起作用 jquery
- python - 字典中的总和值 - python 3
- python - Jupyter Notebook:初始化该类的对象时获取类文件路径
- android - 焦点丢失后,Android 后退箭头返回主屏幕
- jquery - 在 boostrap 4 日期选择器上打开不同的日历