Показывать строки при выполнении хотя бы одного условия - PullRequest
0 голосов
/ 18 июня 2020

У меня есть фрейм данных примерно так (обратите внимание, OrderNumber - это вычисляемое поле для количества уникальных заказов, которые имеет идентификатор клиента)

data = [[1, 1, 'Jacket'], [1, 2, 'T-Shirt'], [1, 3, 'Jumper'], [2, 1, 'T-Shirt'], [2, 2, 'Jacket']] 


    CustomerID  OrderNumber Category
0   1           1           Jacket
1   1           2           T-Shirt
2   1           3           Jumper
3   2           1           T-Shirt
4   2           2           Jacket

Я хочу только фильтровать или маскировать и показывать только те идентификаторы клиентов, которые выполнили условие по первому заказу.

Допустим, их первый заказ должен быть из категории Куртки. Что-то вроде:

df = df[(df["Category"] == 'Jacket') & (df["OrderNumber"] == 1)]

Этот код, очевидно, теперь только будет показывать те строки, которые соответствуют этим условиям, поэтому я вижу только одну строку.

Я хотел бы видеть три строки, по одной для каждого OrderNumber клиента с CustomerID = 1, при этом второй клиент игнорируется, как если бы у них есть куртка в заказе, это когда OrderNumber = 2.

Я немного озадачен как подойти к этой проблеме. Любая помощь приветствуется.

1 Ответ

0 голосов
/ 18 июня 2020

IIU C

df[df['CustomerID'].isin(df[(df["Category"] == 'Jacket') & (df["OrderNumber"] == 1)]['CustomerID'])]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...