python - 合并 Pandas 中的行

标签 python pandas

我有一个像这样的 pandas DataFrame

         100  200  300
283.1   0.01 0.02 0.40
284.1   0.02 0.03 0.42
285.1   0.05 0.01 0.8
286.1   0.06 0.02 0.9

我需要合并一定数量的连续行并计算每列的平均值和一个新索引作为我使用的索引的平均值,以获得如下所示的结果:

         100   200  300
283.6   0.015 0.025 0.41  
285.6   0.055 0.015 0.85

有办法用 pandas 做到这一点吗?

最佳答案

是的——你可以在 Pandas 中做到这一点。这是一种方法。

让我们说一下,我们的初始数据帧df就像

   index   100   200   300
0  283.1  0.01  0.02  0.40
1  284.1  0.02  0.03  0.42
2  285.1  0.05  0.01  0.80
3  286.1  0.06  0.02  0.90

现在,计算数据帧的长度

N = len(df.index)
N
4

我们创建一个 grp 列——用于聚合,

其中对于2行聚合使用[x]*2,对于n连续行使用[x]*n

df['grp'] = list(itertools.chain.from_iterable([x]*2 for x in range(0, N/2)))
df
   index   100   200   300  grp
0  283.1  0.01  0.02  0.40    0
1  284.1  0.02  0.03  0.42    0
2  285.1  0.05  0.01  0.80    1
3  286.1  0.06  0.02  0.90    1

现在,通过对 grp 列进行分组来获取方法,如下所示 --

df.groupby('grp').mean()
     index    100    200   300
grp
0    283.6  0.015  0.025  0.41
1    285.6  0.055  0.015  0.85

关于python - 合并 Pandas 中的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29743959/

相关文章:

python - 如何在 Python 中将 big negative long 打包成二进制字符串

python - 检查 pygame 中的碰撞和停止速度

python - 带有 Pandas 的 DataFrame 的 DataFrame

python - pandas:将多索引数据帧与系列相乘

python - 如何在python中替换回车并将unix返回转换为windows返回?

python - 在 macOS 上编译时输入字段不可编辑 + 不稳定的箭头

python - 如何在 pandas 中多次旋转我的数据框,同时创建合并多个列的新列?

python - 如何在 Django 模型字段中存储 HDF5(HDF Store)

python - 自动生成的名称为字母而不是数字

python - statsmodels 安装失败,出现 ValueError