반응형
다음과 같은 데이터 프레임이 있습니다.
| A | B | C | D |
|---|---|----|---|
| 1 | 3 | 10 | 4 |
| 2 | 3 | 1 | 5 |
| 1 | 7 | 9 | 3 |
A B C D가 범주이고 값이 [1, 10] 범위에있는 경우 (일부 값은 단일 열에 나타나지 않을 수 있음)
모든 카테고리에 대해 해당 값의 개수를 표시하는 데이터 프레임을 갖고 싶습니다. 이 같은:
| | A | B | C | D |
|----|---|----|---|---|
| 1 | 2 | 0 | 1 | 0 |
| 2 | 1 | 0 | 0 | 0 |
| 3 | 0 | 2 | 0 | 1 |
| 4 | 0 | 0 | 0 | 1 |
| 5 | 0 | 0 | 0 | 1 |
| 6 | 0 | 0 | 0 | 0 |
| 7 | 0 | 1 | 0 | 0 |
| 8 | 0 | 0 | 0 | 0 |
| 9 | 0 | 0 | 1 | 0 |
| 10 | 0 | 0 | 1 | 0 |
groupby
및 pivot_table
을 사용해 보았지만 어떤 매개 변수를 제공할지 이해할 수없는 것 같습니다.
해결 방법
import seaborn as sns
import pandas as pd
# dataframe setup
data = {'A': [1, 2, 1], 'B': [3, 3, 7], 'C': [10, 1, 9], 'D': [4, 5, 3]}
df = pd.DataFrame(data)
# create a dataframe of the counts for each column
counts = df.apply(pd.value_counts)
# display(count)
A B C D
1 2.0 NaN 1.0 NaN
2 1.0 NaN NaN NaN
3 NaN 2.0 NaN 1.0
4 NaN NaN NaN 1.0
5 NaN NaN NaN 1.0
7 NaN 1.0 NaN NaN
9 NaN NaN 1.0 NaN
10 NaN NaN 1.0 NaN
# plot
sns.heatmap(counts)
# counts
counts = df.apply(pd.value_counts).fillna(0)
# plot
sns.heatmap(counts, cmap="GnBu", annot=True)
sns.heatmap(counts, annot=True)
참조 페이지 https://stackoverflow.com/questions/63757556
반응형
'파이썬' 카테고리의 다른 글
파이썬 Qt 디자이너에서 창 최대화 (0) | 2020.09.13 |
---|---|
파이썬에서 튜플 목록을 튜플 목록으로 병합하는 방법 (0) | 2020.09.13 |
파이썬 Visual Studio 코드가 내 코드를 실행하지 않는 이유는 무엇입니까? (0) | 2020.09.13 |
파이썬 Python 애플리케이션 24x7 실행-디자인 질문 (0) | 2020.09.13 |
파이썬에서 주어진 ID를 가진 2 차원 목록의 행 (복사본)을 반환하는 가장 효율적인 (가장 빠른) 방법은 무엇입니까? (0) | 2020.09.13 |
댓글