我有一个类型为OHLC(打开,高,低,关闭)的熊猫数据框,我尝试不对它进行采样,而不是使用日期,而是简单地通过汇总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,它们分别是第一行的打开值和第二行的关闭值?
希望有一种优雅的方法吗?
答案 0 :(得分:1)
使用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