在Pandas数据框中查找行的子集(N行),在列的子集具有相同的值

时间:2019-01-13 06:56:15

标签: python-3.x pandas

我有一个df,其中包含没有主键的客户数据。同一位客户可能会多次出现。

我有一个字段(df2 ['campaign']),它是一个整数,反映了客户在df中出现的次数。还有许多客户属性。

在我的示例中,从上到下,对于每一行(即客户),我想查找其教育和默认列的值相同的所有n行(即所有n位客户)。请记住,n是df2 ['campaign']

中包含的int

因此,如下所示,对于第0行和第1行,我应该搜索1行,但什么也没找到,因为对于教育默认组合没有匹配的值。 对于第2行,我应该搜索教育默认值匹配的1行(因为campaign == 1),并在索引4中找到1行。

df2.head()

job marital education   default campaign    housing loan    contact
0     3    1     0    0    1    0    0   1
1     7    1     3    1    1    0    0   1
2     7    1     3    0    1    2    0   1
3     0    1     1    0    1    0    0   1
4     7    1     3    0    1    0    2   1

1 个答案:

答案 0 :(得分:0)

使用df2_sorted = df2.sort(['education', 'default'], ascending=[1, 1])。 然后,如果您的数据不嘈杂,则这些行应成为邻居。