python - Pandas DataFrame 条件分组
问题描述
我有这个 DF:
df = pd.DataFrame(data=[[-2.000000, -1.958010, 0.2],
[-1.958010, -1.916030, 0.4],
[-1.916030, -1.874040, 0.3],
[-1.874040, -1.832050, 0.6],
[-1.832050, -1.790070, 0.8],
[-1.790070, -1.748080, 0.2]],columns=['egystart','egyend','fx'])
所以我想每两行分组并得到 fx 作为两行的平均值。egystart 应该是第一行的 egystart,egyend 应该是第二行的 egyend。
在这种情况下,我应该获得:
-2.000000 -1.916030 0.3
-1.916030 -1.832050 0.45
-1.832050 -1.748080 0.5
所以我尝试了这样的事情:
df.groupby((df.egystart == df.egyend.shift(1)).cumsum()).agg({'egystart':min, 'egyend':max, 'fx':HERE_THE_MEAN_VALUE})
但它不起作用
解决方案
你可以试试这个来获得每 2 行 fx 的平均值:
result = df.groupby(np.arange(len(df))//2).mean()
print(result)
egystart egyend fx
0 -1.979005 -1.937020 0.30
1 -1.895035 -1.853045 0.45
2 -1.811060 -1.769075 0.50
推荐阅读
- json - 在 Rest api Request 中创建多个主体
- javascript - Vuetify.js:部署在 Gitlab 上时 v-stepper 中的颜色属性不生效。如何将颜色道具移动到 CSS 类?
- c++ - 计算两个集合之间的交集时出现 set_intersection 错误
- python - 正则表达式用于使用正向前瞻或后视进行增强分配操作
- webpack - CSS 未包含在 index.html 中
- python - 根据表dynamodb python中的存在更新或插入项目
- android - 通过将 apk 发送给其他人,我的应用程序图标消失了
- c# - 从表中获取单行并在第二个表上加入并在详细信息视图中显示
- r - R:包“littler”的编译失败
- python - 从 Python 3 中的模块调用数组