python - Pandas - Groupby 或将多个数据帧剪切到垃圾箱
问题描述
我有一个带有起始轴点及其终点的数据框,如下所示
x y x_end y_end distance
14.14 30.450 31.71 41.265 20.631750
-27.02 55.650 -33.60 63.000 9.865034
-19.25 70.665 -28.98 80.115 13.563753
16.45 59.115 9.94 41.895 18.409468
我正在绘制热图。我需要该地图的每个“区域”都有一条线,该线显示从该区域具有 x/y 及其 x_end/y_end 的线的平均距离和角度。看起来像这样
我的垃圾箱是
xbins = np.linspace(-35, 35, 11)
ybins = np.linspace(0, 105, 22)
我已经绘制了一张热图
我正在寻找这样的东西
Bins_X Bins_Y Average_X_End Average_Y_End Average_Distance
(-35.0, -28.0] (0, 5.0] 31.71 41.265 20.631750
(-28.0, -21.0] (0, 5.0] -33.60 63.000 9.865034
(-21.0, -14.0] (0, 5.0] -28.98 80.115 13.563753
(-14.0, -7.0] (0, 5.0] 9.94 41.895 18.409468
(-35.0, -28.0] (5.0, 10.0] 41.265 31.71 13.563753
(-28.0, -21.0] (5.0, 10.0] 63.000 -33.60 18.409468
(-21.0, -14.0] (5.0, 10.0] 80.115 -28.98 20.631750
(-14.0, -7.0] (5.0, 10.0] 41.895 9.94 9.865034
解决方案
像这样的东西?
(df.drop(['x','y'], axis=1)
.groupby([pd.cut(df.x, xbins),
pd.cut(df.y, ybins)],
)
.mean()
.dropna(how='all')
.add_prefix('Average_')
)
输出:
Average_x_end Average_y_end Average_distance
x y
(-28.0, -21.0] (55.0, 60.0] -33.60 63.000 9.865034
(-21.0, -14.0] (70.0, 75.0] -28.98 80.115 13.563753
(14.0, 21.0] (30.0, 35.0] 31.71 41.265 20.631750
(55.0, 60.0] 9.94 41.895 18.409468
推荐阅读
- url - 如何在mvc项目中的angular6中刷新相同的页面url
- ios - 在第三方 SDK 集成之前需要考虑哪些安全参数
- laravel - 有时会出现 curl_setopt_array(): 提供的资源在奇怪的地方不是有效的 cURL 句柄资源
- c++ - 为什么从函数调用时 c++11 std::normal_distribution 返回相同的模式?
- python - 在运行时添加 Python 入口点
- javascript - 试图在javascript函数中清除文本框中的值
- javascript - 如何重复xml元素?
- sails.js - Sails.JS:根据应用程序是在 Dev 还是 Prod 模式下运行来配置策略?
- javascript - 从 IONIC 3 中的资产文件夹下载 CSV 文件
- arrays - Laravel 哪里集合