python - 根据 Python Pandas 中的相邻行计算值

标签 python pandas dataframe

我有 pandas Dataframe 形式的值对(请参阅“mjd”列):

    cor      est        rms     apr         mjd
0   0.12359  80.53359   0.01639 80.41       57754.0
1   -0.01281 80.21719   0.01642 80.23       57755.0
2   0.03876  80.26876   0.01743 80.23       57755.0
3   0.08924  80.40924   0.01779 80.32       57756.0
4   0.06863  80.38863   0.01686 80.32       57756.0
5   -0.07582 80.01417   0.01748 80.08999    57757.0
6   0.13964  80.22963   0.01773 80.08999    57757.0
7   0.03911  79.01908   0.01809 78.97997    57758.0

现在,我想创建一个具有相同列但计算相邻序列第 0 行和第 1 行的平均值的新数据框; 2 和 3; 4 和 5 等

预期输出:

    cor     est     rms     apr     mjd
0   0.05539 80.3754 0.01640 80.32   57754.5 
1   0.064   80.339  0.01761 80.275  57755.5
2   -0.0035 80.2014 0.01717 80.2049 57756.5
3   0.08937 79.6243 0.01791 79.5349 57757.5

最佳答案

您可以使用 df.index//2 进行分组:

In [11]: df.index // 2
Out[11]: Int64Index([0, 0, 1, 1, 2, 2, 3, 3], dtype='int64')

In [12]: df.groupby(df.index // 2).mean()
Out[12]:
        cor        est       rms        apr      mjd
0  0.055390  80.375390  0.016405  80.320000  57754.5
1  0.064000  80.339000  0.017610  80.275000  57755.5
2 -0.003595  80.201400  0.017170  80.204995  57756.5
3  0.089375  79.624355  0.017910  79.534980  57757.5

关于python - 根据 Python Pandas 中的相邻行计算值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54940034/

相关文章:

python - 在 Pandas 中,如何在 DataFrame 中排在前十组数据?

python - Pandas 使用训练数据框列选择测试数据框列

python - Pandas Dataframe 复杂计算

Python - SQLAlchemy 的 Ubuntu 安装不工作

python - 美汤刮痧 table

python - 5x5 滑动拼图快速低移动解决方案

python - 尝试使用 tensorflow 自定义回调进行中间层预测时出现 "Layer is not connected, no input to return"错误

python - 展平 numpy 结构化数组的嵌套字段

python - 如何有效地替换 pandas 列中日期时间值的时间部分?

python - "corresponding function to iloc"对于 Pandas 来说是 "at to loc"