Как группировать записи на основе двух параметров, используя панд в Python - PullRequest
1 голос
/ 31 марта 2019

Если мне нужно сгруппировать по моим записям по их минимальному значению, я делаю следующее

df.sort_values(['price']).drop_duplicates(['SKU']).to_csv('Min_Prices.csv',sep=';',index=False)

и я получаю

    id  price   editor 
1   k1  8.0     ed2 
2   k3  10.0    ed1 
4   k2  10.5    ed1 

Но у меня есть дополнительный столбец доступности, например

    id  price  availability   editor
 1  k1  8.0    0              ed2
 2  k1  9.0    1              ed1
 3  k1  9.5    1              ed3
 4  k4  9.5    1              ed1
 5  k4  9.0    0              ed2
 6  k5  8.5    1              ed1
 7  k5  7.8    0              ed2

Ожидаемое должно быть

k1 9.0 ed1
k4 9.5 ed1
k5 8.5 ed1

Так, как я могу получить минимумы доступности значения 1. Где я могу вставить доступность в исходную формулу?

спасибо

1 Ответ

1 голос
/ 31 марта 2019

Я считаю, что вам нужно boolean indexing или DataFrame.query:

df1 = df[df['availability'] == 1].sort_values(['price']).drop_duplicates(['id'])
#alternative
#df1 = df.query('availability == 1').sort_values(['price']).drop_duplicates(['id'])

print (df1)
   id  price  availability editor
6  k5    8.5             1    ed1
2  k1    9.0             1    ed1
4  k4    9.5             1    ed1

df1.to_csv('Min_Prices.csv',sep=';',index=False)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...