Я собираюсь попытаться выразить эту проблему в наиболее общем виде. Предположим, у меня есть фрейм данных pandas с несколькими столбцами ['A', 'B', 'C', 'D']
.
Для каждого уникального значения в 'A' мне нужно получить следующее соотношение: количество раз 'B' == x
, деленное на количество раз 'B' == y
, когда 'C' == q OR p
...
Извините, но я не знаю, как выразить это по-питонски.
Пример данных:
df = pd.DataFrame({'A': ['foo', 'zar', 'zar', 'bar', 'foo', 'bar','foo', 'bar', 'tar', 'foo', 'foo'],
'B': ['one', 'two', 'four', 'three', 'one', 'two', 'three','two', 'two', 'one', 'three'],
'C': np.random.randn(11),'D': np.random.randn(11)})`
Мне нужно что-то вроде следующего. Для каждого уникального значения i
в 'A'
мне нужно соотношение числа раз 'B' == 'one'
к числу раз 'B' == 'two'
при 'C' > 2
.
Итак, вывод будет выглядеть примерно так:
foo = 0.75