首页 > 解决方案 > 使用 numpy.where 比较特定的数组项

问题描述

我一直在寻找使用numpy.where. 我有一个熊猫数据框如下:

   Id   City                    UF
0   1   [5057, Itu, 26]         [26, São Paulo]
1   2   [5366, Sorocaba, 26]    None
2   3   [5347, São Paulo, 26]   [26, São Paulo]
3   4   [3288, Curitiba, 18]    [18, Paraná]
4   5   [162, Manaus, 3]        [3, Amazonas]

对于每一行,我想将数组City中的第三项与数组UF中的第一项进行比较。我试过这样:

np.where((pdf.loc[pdf['Cidade']:, 2] == pdf.loc[pdf['UF']:, 0]), True, False)

但没有成功。我发现的每个类似样本都是关于比较整个数组。

这是我在这里检查过一些链接

谢谢指教。

标签: pythonarraysnumpy

解决方案


几乎你所说的@Mstaino。

我得到了我想要的使用下面的代码:

np.where((pdf['Cidade'].apply(lambda x: x[2] if x is not None else None) == pdf['UF'].apply(lambda x: x[0] if x is not None else None)), True, False)

感谢提示!


推荐阅读