【发布时间】:2019-06-19 08:49:27
【问题描述】:
我有一个带有 x、y、z 和 b 列的 pandas 数据框。对于每个 x 和 y 对(描述像素),如果所有 z 值仅在某个阈值(例如 0.3)内不同,我想比较所有像素的 z 值并将 b 设置为 true。如果某些像素的 z 值差异超过阈值,则仅将 z 值最小的像素(在阈值内)设置 b 为 true,将其他像素(高于阈值)设置为 false。
我想,我可能会使用pandas的@987654321@函数,比如
df[['x','y','z','b']].groupby(['x','y'])
获取所有具有相同 x 和 y 的集合。但是我怎样才能应用一个函数来执行即将到来的比较等等?还是有一些 numpy 函数可以做到这一点?
例子:
我有下表(作为数据框)
xyz ----------------------------------------- 1124 922 78.601423 1124 922 78.602461 1124 922 95.140586 1123 922 78.603544 1123 922 78.604400 1123 922 78.605449 1123 922 78.606395 1123 922 87.247255 1123 922 87.234766 1123 922 78.609117 1123 922 78.610156 ...我想要的,应该是什么样子的
x y z b ---------------------------------- 1124 922 78.601423 真 1124 922 78.602461 真 1124 922 95.140586 假 1123 922 78.603544 真 1123 922 78.604400 真 1123 922 78.605449 真 1123 922 78.606395 真 1123 922 87.247255 假 1123 922 87.234766 假 1123 922 78.609117 真 1123 922 78.610156 真 ...【问题讨论】: