Подсчет элементов по различным условиям в строках в Python Pandas - PullRequest
0 голосов
/ 13 апреля 2020

Я пытаюсь создать путаницу матрицы эксперимента.

Итак, набор данных похож на это;

    Responses   Condition
3    1             R
4    1             R
6    1             R
7    1             R
8   -1             R
9   -1             N
10  -1             N
11  -1             N
12  -1             R
13   1             R

Я хочу классифицировать четыре различных условия; и я хочу сосчитать каждое из условий.

1 & N, -1 & N, 1 & R, -1 & R

Я хочу подсчитать каждую из этих ситуаций в фрейм данных.

Я пытался использовать .itertuples, но я не знаю, как использовать его с 2 параметрами.

Ответы [ 2 ]

2 голосов
/ 13 апреля 2020

IIU C

df.groupby(['Condition','Responses']).size().unstack(fill_value=0).stack()
Condition  Responses
N          -1           3
            1           0
R          -1           2
            1           5
dtype: int64

Или

pd.crosstab(df.Condition,df.Responses)
Responses  -1   1
Condition        
N           3   0
R           2   5
1 голос
/ 13 апреля 2020

это может сработать

import pandas as pd
df = pd.DataFrame({"Conditions":["R","R","N","N"], "Responses":[1,-1,-1,-1]})
df.groupby(["Conditions","Responses"]).apply(len).to_frame("occurrences")
...