Python熊猫过滤器

给定是一个熊猫表,其中每一行代表NxM网格上的一个正方形。仅当正方形被占用时,正方形才会出现在表格中。正方形可以被属于C类之一的对象占据。

表的每一行都包含以下几列:row,column,class。

对于NxM网格的每个占用的正方形,我希望找到:

  • 附近是否所有广场都被占用
  • 它们是否被相同类的对象占据

如果附近没有至少一个正方形被占用,请立即继续到下一行。

我当前的解决方案使表使用(行,列)作为多索引。然后,它将邻域的(行,列)坐标生成一个列表,并在熊猫表上调用loc。之后,我首先检查结果是否包含nan,最后是否存在外部类:

neighbourhood = [(r1,c1),(r2,c2),...]
result = grid_df.loc[neighbourhood]['class'].ravel()
if np.isnan(result).any():
    return 'Free neighbourhood'
if len(np.unique(result)) == 1 and cur_class in np.unique(result):
    return 'Same class'
return 'Foreign class'

但是,此解决方案太慢。我有成千上万个这样的网格,具有不同的网格大小和不同的社区。有什么办法可以改善这一点?

w513166440 回答:Python熊猫过滤器

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3144426.html

大家都在问