pandas условные значения для групп и количества - PullRequest
0 голосов
/ 24 марта 2020

Я хочу посчитать количество значений 'bb', соответствующих метке 'b', для того же ярлыка 'aa' и значения 'a'. Это упрощенная версия проблемы.

Например, номер значения «Python», соответствующего значению «Навыки работы с компьютером», когда должность является программистской («aa» Значение для задания в качестве «a» метки).

Я запускаю следующий код, но он не работает, верно. Результат должен быть 2 'bb', что соответствует 2 'aa'.

import numpy as np
import pandas as pd
data= {'id':[1, 1, 1, 2, 2, 2, 3, 3, 3, 3], 
   'Label':['a', 'b', 'c', 'a', 'b', 'c', 'a', 'b', 'b', 'c'], 
   'Values':['aa', 'bb', 'cc', 'dd', 'ee', 'cc', 'aa', 'bb', 'bbb', 'cc'] 
     } 
dataset=pd.DataFrame(data=data)
d=dataset.groupby(by=['Label'])
for k, value in d: 
      print(value[value.Label=='a'].groupby('Values').count())

1 Ответ

0 голосов
/ 24 марта 2020

Вы можете сделать следующее:

import pandas as pd
data= {'id':[1, 1, 1, 2, 2, 2, 3, 3, 3, 3],
   'Label':['a', 'b', 'c', 'a', 'b', 'c', 'a', 'b', 'b', 'c'],
   'Values':['aa', 'bb', 'cc', 'dd', 'ee', 'cc', 'aa', 'bb', 'bbb', 'cc']
     }
dataset=pd.DataFrame(data=data)
d=dataset.groupby(by=['Label'])
for k, value in d:
    print(value.loc[value.Label=='a','Values'].value_counts())
...