我想繪制我的組的標簽列分布圖。我能夠通過創建假人、創建每個組的資料透視表來做到這一點,然后創建一個回圈來構建一個新的資料框。我正在尋找更短的方法。也許使用更先進的 groupby 方法?而且我不知道如何創建并排條形圖而不是我這里的堆疊條形圖。
要重新創建資料框:
import pandas as pd
import numpy as np
np.random.seed(1)
a = np.random.choice(['region_A', 'region_B', 'region_C', 'region_D', 'region_E'], size=30, p=
[0.1, 0.2, 0.3, 0.30, 0.1])
b = np.random.choice(['1', '0'], size=30, p=[0.5, 0.5])
df = pd.DataFrame({'region': a, 'label': b})
我的愿望圖:
dummy = pd.get_dummies(df['region'])
region_lst = []
label_0 = []
label_1 = []
for col in dummy.columns:
region_lst.append(col)
label_0.append(pd.crosstab(dummy[col], df['label']).iloc[1,0])
label_1.append(pd.crosstab(dummy[col], df['label']).iloc[1,1])
df_labels = pd.DataFrame({'label_0': label_0, 'label_1': label_1}, index=region_lst)
df_labels.plot.bar()
uj5u.com熱心網友回復:
用于
中間crosstab:
label 0 1
region
region_A 2 3
region_B 3 3
region_C 5 4
region_D 3 6
region_E 1 0
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/495115.html
標籤:熊猫 matplotlib
下一篇:如何讓日志刻度線朝內?
