데이터 프레임에 포함된 이진 데이터의 빈도를 Python을 사용하여 하나의 막대 그래프로 표시
7979 단어 pandas파이썬matplotlib
2치 데이터 등이 얼마나 포함되는지를 하나의 막대 그래프로 표현하고 싶을 때가 있을 것입니다.
찾는 방법이 좋지 않았는지,
하나의 막대 그래프로 나타내는 간결한 방법이 나오지 않았으므로 출력도 포함하여 기재합니다.
이번에는 2치 데이터뿐만 아니라 6치 데이터도 포함한 막대 그래프를 작성하고 있습니다.
환경
Google Colab을 사용했습니다.
사용한 라이브러리 버전은 다음과 같습니다.
도서관
버전
파이썬
3.6.9
pandas
1.1.4
seaborn
0.11.0
matplotlib
3.2.2
라이브러리 가져오기
위의 모듈을 사용할 때 가져올 수 있습니다.
%matplotlib inline
import pandas as pd
import seaborn as sns
from matplotlib import pyplot as plt
데이터 세트 가져오기
이번에는 seaborn에 포함 된 학습 데이터 세트 tips를 사용합니다.
이 데이터 세트에는
저녁 식사와 점심 식사의 총 지불액, 포함 된 칩의 금액, 지불 한 사람의 성별 등이 포함됩니다.
# データフレームのインポート
tips = sns.load_dataset('tips')
# 先頭5行を確認
display(tips.head())
total_bill
팁
sex
스모커
day
시간
크기
0
16.99
1.01
여성
아니
썬
Dinner
2
1
10.34
1.66
Male
아니
썬
Dinner
3
2
21.01
3.50
Male
아니
썬
Dinner
3
3
23.68
3.31
Male
아니
썬
Dinner
2
4
24.59
3.61
여성
아니
썬
Dinner
4
위와 같은 출력이 있으면 가져 오기가 성공합니다.
데이터 처리
다음 네 개의 열을 사용하여 막대 그래프를 만듭니다.
그래프를 만들 때 정성적 값을 정량적 값으로 변환해야 합니다.
열 이름
개요
정책
sex
성별 (Male/Female)
Male -> 0, Female -> 1
스모커
흡연 (No/Yes)
No -> 0, Yes -> 1
시간
식사 시간 (Lunch/Dinner)
Lunch -> 0, Dinner -> 1
크기
인원수 (1 ~ 6)
그대로 이용
이것을 실현하는 방법에는 여러 가지가 있다고 생각합니다.
다음과 같이 실시했습니다.
# sexを定量化 (Male1 -> 0, Female -> 1)
tips.sex = tips.sex.replace("Male", 0).replace("Female", 1)
# smokerを定量化 (No -> 0, Yes -> 1)
tips.smoker = tips.smoker.replace("No", 0).replace("Yes", 1)
# timeを定量化 (Lunch -> 0, Dinner -> 1)
tips.time = tips.time.replace("Lunch", 0).replace("Dinner", 1)
# 先頭5行を確認
display(tips.head())
total_bill
팁
sex
스모커
day
시간
크기
0
16.99
1.01
1
0
썬
1
2
1
10.34
1.66
0
0
썬
1
3
2
21.01
3.50
0
0
썬
1
3
3
23.68
3.31
0
0
썬
1
2
4
24.59
3.61
1
0
썬
1
4
따라서 0과 1로 대체되었음을 확인할 수 있습니다.
빈도 그래프
그런데, 본제가 됩니다.
막대 그래프에 포함할 열 이름을 목록 형식으로 label에 정의합니다.
그런 다음 각 열에 대해 고유한 값과 해당 개수를 가져옵니다.
이대로는 index가 컬럼명, 컬럼명이 값의 상태이므로 교환을 실행하고 있습니다.
# 棒グラフに収めるラベル一覧の定義
label = ["sex", "smoker", "time", "size"]
# 各ラベルに対してユニークな値の取得
tips_ = [tips[l].value_counts() for l in label]
# データフレームに変換してindexとカラムを入れ替え
tips_ = pd.DataFrame(tips_).transpose()
# グラフの表示
tips_.plot.bar()
plt.grid()
plt.title("Frequency of values in each label")
plt.ylabel("counts")
plt.xlabel("value")
plt.show()
이렇게 요청하고 싶은 그래프를 만들 수있었습니다.
요약
value_counts를 사용하여 새 데이터 프레임을 만들고 빈도 막대 그래프를 출력했습니다.
참고로 한 것
위의 모듈을 사용할 때 가져올 수 있습니다.
%matplotlib inline
import pandas as pd
import seaborn as sns
from matplotlib import pyplot as plt
데이터 세트 가져오기
이번에는 seaborn에 포함 된 학습 데이터 세트 tips를 사용합니다.
이 데이터 세트에는
저녁 식사와 점심 식사의 총 지불액, 포함 된 칩의 금액, 지불 한 사람의 성별 등이 포함됩니다.
# データフレームのインポート
tips = sns.load_dataset('tips')
# 先頭5行を確認
display(tips.head())
total_bill
팁
sex
스모커
day
시간
크기
0
16.99
1.01
여성
아니
썬
Dinner
2
1
10.34
1.66
Male
아니
썬
Dinner
3
2
21.01
3.50
Male
아니
썬
Dinner
3
3
23.68
3.31
Male
아니
썬
Dinner
2
4
24.59
3.61
여성
아니
썬
Dinner
4
위와 같은 출력이 있으면 가져 오기가 성공합니다.
데이터 처리
다음 네 개의 열을 사용하여 막대 그래프를 만듭니다.
그래프를 만들 때 정성적 값을 정량적 값으로 변환해야 합니다.
열 이름
개요
정책
sex
성별 (Male/Female)
Male -> 0, Female -> 1
스모커
흡연 (No/Yes)
No -> 0, Yes -> 1
시간
식사 시간 (Lunch/Dinner)
Lunch -> 0, Dinner -> 1
크기
인원수 (1 ~ 6)
그대로 이용
이것을 실현하는 방법에는 여러 가지가 있다고 생각합니다.
다음과 같이 실시했습니다.
# sexを定量化 (Male1 -> 0, Female -> 1)
tips.sex = tips.sex.replace("Male", 0).replace("Female", 1)
# smokerを定量化 (No -> 0, Yes -> 1)
tips.smoker = tips.smoker.replace("No", 0).replace("Yes", 1)
# timeを定量化 (Lunch -> 0, Dinner -> 1)
tips.time = tips.time.replace("Lunch", 0).replace("Dinner", 1)
# 先頭5行を確認
display(tips.head())
total_bill
팁
sex
스모커
day
시간
크기
0
16.99
1.01
1
0
썬
1
2
1
10.34
1.66
0
0
썬
1
3
2
21.01
3.50
0
0
썬
1
3
3
23.68
3.31
0
0
썬
1
2
4
24.59
3.61
1
0
썬
1
4
따라서 0과 1로 대체되었음을 확인할 수 있습니다.
빈도 그래프
그런데, 본제가 됩니다.
막대 그래프에 포함할 열 이름을 목록 형식으로 label에 정의합니다.
그런 다음 각 열에 대해 고유한 값과 해당 개수를 가져옵니다.
이대로는 index가 컬럼명, 컬럼명이 값의 상태이므로 교환을 실행하고 있습니다.
# 棒グラフに収めるラベル一覧の定義
label = ["sex", "smoker", "time", "size"]
# 各ラベルに対してユニークな値の取得
tips_ = [tips[l].value_counts() for l in label]
# データフレームに変換してindexとカラムを入れ替え
tips_ = pd.DataFrame(tips_).transpose()
# グラフの表示
tips_.plot.bar()
plt.grid()
plt.title("Frequency of values in each label")
plt.ylabel("counts")
plt.xlabel("value")
plt.show()
이렇게 요청하고 싶은 그래프를 만들 수있었습니다.
요약
value_counts를 사용하여 새 데이터 프레임을 만들고 빈도 막대 그래프를 출력했습니다.
참고로 한 것
# データフレームのインポート
tips = sns.load_dataset('tips')
# 先頭5行を確認
display(tips.head())
다음 네 개의 열을 사용하여 막대 그래프를 만듭니다.
그래프를 만들 때 정성적 값을 정량적 값으로 변환해야 합니다.
열 이름
개요
정책
sex
성별 (Male/Female)
Male -> 0, Female -> 1
스모커
흡연 (No/Yes)
No -> 0, Yes -> 1
시간
식사 시간 (Lunch/Dinner)
Lunch -> 0, Dinner -> 1
크기
인원수 (1 ~ 6)
그대로 이용
이것을 실현하는 방법에는 여러 가지가 있다고 생각합니다.
다음과 같이 실시했습니다.
# sexを定量化 (Male1 -> 0, Female -> 1)
tips.sex = tips.sex.replace("Male", 0).replace("Female", 1)
# smokerを定量化 (No -> 0, Yes -> 1)
tips.smoker = tips.smoker.replace("No", 0).replace("Yes", 1)
# timeを定量化 (Lunch -> 0, Dinner -> 1)
tips.time = tips.time.replace("Lunch", 0).replace("Dinner", 1)
# 先頭5行を確認
display(tips.head())
total_bill
팁
sex
스모커
day
시간
크기
0
16.99
1.01
1
0
썬
1
2
1
10.34
1.66
0
0
썬
1
3
2
21.01
3.50
0
0
썬
1
3
3
23.68
3.31
0
0
썬
1
2
4
24.59
3.61
1
0
썬
1
4
따라서 0과 1로 대체되었음을 확인할 수 있습니다.
빈도 그래프
그런데, 본제가 됩니다.
막대 그래프에 포함할 열 이름을 목록 형식으로 label에 정의합니다.
그런 다음 각 열에 대해 고유한 값과 해당 개수를 가져옵니다.
이대로는 index가 컬럼명, 컬럼명이 값의 상태이므로 교환을 실행하고 있습니다.
# 棒グラフに収めるラベル一覧の定義
label = ["sex", "smoker", "time", "size"]
# 各ラベルに対してユニークな値の取得
tips_ = [tips[l].value_counts() for l in label]
# データフレームに変換してindexとカラムを入れ替え
tips_ = pd.DataFrame(tips_).transpose()
# グラフの表示
tips_.plot.bar()
plt.grid()
plt.title("Frequency of values in each label")
plt.ylabel("counts")
plt.xlabel("value")
plt.show()
이렇게 요청하고 싶은 그래프를 만들 수있었습니다.
요약
value_counts를 사용하여 새 데이터 프레임을 만들고 빈도 막대 그래프를 출력했습니다.
참고로 한 것
# 棒グラフに収めるラベル一覧の定義
label = ["sex", "smoker", "time", "size"]
# 各ラベルに対してユニークな値の取得
tips_ = [tips[l].value_counts() for l in label]
# データフレームに変換してindexとカラムを入れ替え
tips_ = pd.DataFrame(tips_).transpose()
# グラフの表示
tips_.plot.bar()
plt.grid()
plt.title("Frequency of values in each label")
plt.ylabel("counts")
plt.xlabel("value")
plt.show()
value_counts를 사용하여 새 데이터 프레임을 만들고 빈도 막대 그래프를 출력했습니다.
참고로 한 것
Reference
이 문제에 관하여(데이터 프레임에 포함된 이진 데이터의 빈도를 Python을 사용하여 하나의 막대 그래프로 표시), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/kuma_kuma/items/e3888876699bf17268e2텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)