熊猫:使用ndarray查找行

时间:2020-04-15 14:25:58

标签: pandas dataframe find

我是熊猫新手。

要查找具有特定值的所有行,我可以运行

data[data['category'] == 'name']

将按预期返回系列。

我的专栏只有一个1x2的numpy数组。但是如果我这样做

data[data['list'] == np.array([0, 0])] 

我收到 ValueError:长度必须匹配才能进行比较

我如何找到其中包含特定numpy数组的行?

1 个答案:

答案 0 :(得分:0)

您可以将applylambda之类的df[df.list.apply(lambda x: (x == c).all())]函数一起使用

例如:

>>> df
     list
0  [0, 0]
1  [1, 1]
2  [0, 0]
3  [1, 0]

>>> c
array([0, 0])

>>> df.list.apply(lambda x: x == c)
0      [True, True]
1    [False, False]
2      [True, True]
3     [False, True]
Name: list, dtype: object

>>> df.list.apply(lambda x: (x == c).all())
0     True
1    False
2     True
3    False
Name: list, dtype: bool

>>> df[df.list.apply(lambda x: (x == c).all())]
     list
0  [0, 0]
2  [0, 0]