查找pandas中连续两行的平均值

lea*_*ner 3 python dataframe pandas

我试图找到每列中连续两行的平均值

In[207]: df = DataFrame({"A": [9, 4, 2, 1, 4], "B": [12, 7, 5, 4,8]})
In[208]: df
Out[207]: 
   A   B
0  9  12
1  4   7
2  2   5
3  1   4
4  4   8
Run Code Online (Sandbox Code Playgroud)

结果应该是:

Out[207]: 
   A   B
0  6.5  9.5
1  1.5  4.5
Run Code Online (Sandbox Code Playgroud)

如果元素的数量为奇数,则丢弃最后一行.

Max*_*axU 5

试试这个:

In [29]: idx = len(df) - 1 if len(df) % 2 else len(df)

In [30]: df[:idx].groupby(df.index[:idx] // 2).mean()
Out[30]:
     A    B
0  6.5  9.5
1  1.5  4.5
Run Code Online (Sandbox Code Playgroud)