найти количество комбинаций 1 и 0 в двух столбцах - PullRequest
0 голосов
/ 14 мая 2018

Ввод:

            X   Y
Hyderabad   1   1
Bangalore   0   1
Goa         1   1
Chennai     0   1
Hyderabad   0   1
Goa         0   0
Chennai     0   1
Goa         0   0
Hyderabad   1   0
Chennai     0   1
Chennai     1   1
Goa         0   1
Bangalore   0   0
Bangalore   0   1

Ожидаемый вывод:

        X   
        0   1
Y   0   3   1
    1   7   3

Ответы [ 2 ]

0 голосов
/ 14 мая 2018

Если у вас есть pandas фрейм данных, один из вариантов - использовать pandas.crosstab для возврата другого фрейма данных:

import pandas as pd

df = pd.read_csv('file.csv')
res = pd.crosstab(df['X'], df['Y'])

print(res)

Y  0  1
X      
0  3  7
1  1  3

collections.Counter решение также возможно, если результат словарятребуется:

res = Counter(zip(df['X'].values, df['Y'].values))
0 голосов
/ 14 мая 2018

Я имею в виду, если предположить, что это кадр данных pandas (называемый df)

from collections import Counter

counter = Counter()
for row in df.itertuples():
    counter[row.X, row.Y] += 1

Вывод:

 Counter({(0, 0): 3, (0, 1): 7, (1, 0): 1, (1, 1): 3})
...