使用numpy.where

时间:2019-02-27 15:10:36

标签: python arrays numpy

我一直在寻找使用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]

我想针对每行将数组城市中的第三项与数组 UF 中的第一项进行比较。我已经这样尝试过:

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

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

这里有一些我已经herehere检查过的链接

感谢您的咨询。

1 个答案:

答案 0 :(得分:0)

几乎你说的是@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)

谢谢你的提示!