Pandas - Как сформировать группы, а затем построить распределение (гистограмму) для каждой группы на основе двух столбцов? - PullRequest
0 голосов
/ 13 февраля 2020

----| col_1 | col_2 | col_3 (...) row_1| "A" "Yes" "Yes" row_2| "B" "Yes" "No" row_3| "A" "Yes" "Yes" row_4| "A" "No" "Yes" Результат для "A": 2 | 1 | | ("Yes", "Yes") ("No", "Yes") ("Yes", "No") ("No", "No")

Как мне сгруппировать pandas DataFrame в вышеуказанном формате по col_1 и создать график для каждой группы, который визуализирует распределение (количество вхождений) пар значений (col_2, col_3) ? Col_2 и col_3 имеют два различных значения: "Да" и "Нет" . Возможные пары: («Да», «Да») , («Да», «Нет») , («Нет», «Да») , («Нет», «Нет») .

Заранее спасибо!

1 Ответ

0 голосов
/ 13 февраля 2020
import matplotlib.pyplot as plt

df = pd.DataFrame(
    [['A', 'Yes', 'Yes'],
    ['B', 'Yes', 'No'],
    ['A', 'Yes', 'Yes'],
    ['A', 'No', 'Yes']],

    columns= ['col_1', 'col_2', 'col_3']   
)

for key, grp in df.groupby(['col_2', 'col_3']):
    grp['col_1'].hist()
    plt.show()

Вы должны увидеть 3 графика - по одному для каждой пары col_2 / col_3

...