2015-03-31 3 views
0

У меня есть dataframe, как показано ниже, и из приведенных ниже данных, я хочу извлечь, где user_category является 1,2,4,6 в качестве транзакционных данных, и где user_category является 3, как рекламные данныеКак извлечь определенные категории из переменной из фреймворка в python

TextData

id user_category operator circle 
23  1   vodafone mumbai 
45  2   airtel  andhra 
65  3   airtel  chennai 
23  6   vodafone mumbai 
45  1   airtel  gurgaon 
65  2   airtel  ongole 
23  4   vodafone mumbai 
45  1   airtel  telangana 
65  3   airtel  chennai 

Это, как я пытался за это, я получил выход, как я хочу, но то, что мне нужно, как можно извлечь данные, где user_category 1,2, 4,6 в одном куске кода

transactional1 = textdata[textdata['user_category'] == 1] 
transactional2 = textdata[textdata['user_category'] == 2] 
transactional3 = textdata[textdata['user_category'] == 4] 
transactional4 = textdata[textdata['user_category'] == 6] 
transactional = pd.concat((transactional1, transactional2, 
         transactional3, transactional4)) 

promotional = textdata[textdata['user_category'] == 3] 

ожидается путь:

transctional = textdata[textdata['user_category'] == 1,2,4,6] 

ответ

0

Самый простой способ сделать это с isin методом, который имитирует питона 1 in [1,2,3] рода поведение:

transctional = textdata[textdata['user_category'].isin([1,2,4,6])] 

Есть другие способы сделать это, но они менее ясны и более многословны.

Смежные вопросы