我有一个像这样的 ndarray:
data = [(1,"YES", 54.234),
(1,"YES", 1.0001),
(2,"YES", 4.234),
(3,"YES", 0.234)]
dtypes = [("GROUPID", np.int),
("HASNEAR", "|S255"),
("DISTANCE", np.float64)]
array = np.array(data, dtype=dtypes)
有没有办法对数据进行分组并在新数组中仅返回每组中的最小距离?
在我的示例中,我有 4 行。在分组并返回最小值之后,我希望只返回 3 行。每个 GROUPID 值一个。
如果 numpy 数组不是合适的工具,您可以在 Pandas 中执行此操作吗?
谢谢
请您参考如下方法:
创建一个 pandas DataFrame,按 GROUPID 分组并按 min() 聚合:
df = pd.DataFrame(data, columns=('GROUPID','HASNEAR','DISTANCE'))
df.groupby('GROUPID').min()
