|
1
1
让我们试试。 导入熊猫为pd 将numpy导入为np 将matplotlib.pyplot导入为plt 从ITertools导入GroupBy 数据=['ship':'是','独木舟':'是','巡航':'是','皮艇':'否','颜色''红色'125;,'船舶':'是','巡航':'是','皮艇''''','独木舟'''否','颜色''绿色','船舶':'是''''''''''''''''船舶':'是'''''''''''''''''''是'''''''''''''''''''''''''''''''''''''''''''''''''''''''','ship':'yes'、'cruise':'是“,”皮划艇“:”是“,”皮划艇“:”否“,”颜色“:”红色“,”船舶“:”否“,”巡航“:”是“,”皮划艇“:”否“,”皮划艇“:”是“,”颜色“:”绿色“,”船舶“:”否“,”巡航“:”否“,”皮划艇“:”否“,”皮划艇“:”否“,”颜色“:”绿色“,”船舶“:”否“,”巡航“:”否“,”皮划艇“:”否“,”皮划艇“:”否“,”颜色“:”红色“” df=pd.数据帧(数据) df1=df.replace([“yes”,“no”],[1,0]).groupby(“color”).mean().stack().rename(“%yes”).to_frame()) 定义添加线(ax、xpos、ypos): line=plt.line2d([xpos,xpos],[ypos+.1,ypos], transform=ax.transaxs,color='gray') line.set_clip_on(假) ax.添加线条(线条) def label_len(我的_index,级别): labels=my_index.get_level_值(level) 返回[(k,sum(1代表i in g))代表k,g代表groupby(labels)] def label_group_bar_table(ax,df): YPOS=- 1 比例=1./df.index.size 对于范围内的级别(df.index.nlevels)[::-1]: POS=0 对于label,label-len(df.index,level)中的rpo: Lxpos=(pos+.5*rpos)*比例 ax.text(lxpos,ypos,label,ha='center',transform=ax.transaxs) 添加线条(ax、pos*比例、ypos) POS=RPOS 添加线条(ax、pos*比例、ypos) YPOS==1 颜色列表=['绿色','红色'] cp=sns.color_调色板(颜色列表) ax=sns.barplot(x=df1.index,y=“%yes”,hue=df1.index.get_-level_-values(0),data=df1,palete=cp) #2行以下删除默认标签 ax.set xtickLabels('') ax.set xlabel('') 标签组栏表(ax,df1) < /代码> 输出: 输出:
|
|
2
2
不完全确定我是否正确理解这个问题。看起来,查看每艘船类型的答案比例会更有意义。 and color. 导入matplotlib.pyplot as plt 将熊猫作为PD导入 数据=['ship':'是','独木舟':'是','巡航':'是','皮艇':'否','颜色''红色'125;,'船舶':'是','巡航':'是','皮艇''''','独木舟'''否','颜色''绿色','船舶':'是''''''''''''''''船舶':'是'''''''''''''''''''是'''''''''''''''''''''''''''''''''''''''''''''''''''''''','ship':'yes'、'cruise':'是“,”皮划艇“:”是“,”皮划艇“:”否“,”颜色“:”红色“,”船舶“:”否“,”巡航“:”是“,”皮划艇“:”否“,”皮划艇“:”是“,”颜色“:”绿色“,”船舶“:”否“,”巡航“:”否“,”皮划艇“:”否“,”皮划艇“:”否“,”颜色“:”绿色“,”船舶“:”否“,”巡航“:”否“,”皮划艇“:”否“,”皮划艇“:”否“,”颜色“:”红色“” df=pd.数据帧(数据) ax=df.replace([“yes”,“no”],[1,0]).groupby(“color”).mean().transmose().plot.bar(color=[“g”,“r”]) ax.set_title('比例“是”根据船型和颜色回答') 显示() < /代码> 这意味着,例如,25%的绿色独木舟回答“是”。 钕颜色。
这意味着,例如,25%的绿色独木舟回答“是”。 |
|
|
3
0
不确定您是否正在寻找它,请告诉我它是否有效。 导入熊猫为pd 将Seaborn导入为sns 将matplotlib.pyplot导入为plt 整齐的熔接(df,id_vars=['color'],var_name='variable',value_name='value') total_df=tidy_df[['variable'].groupby('variable').size().reset_index()) tidy_df=tidy_df.groupby(['color'、'variable'、'value']).size().reset_index()) 合并后的“df=pd.merge”(整齐的“df,total”df,on='variable',how='left',后缀=“'u left”,“'u right”)) 合并后的“df”[“proportion”]=合并后的“df”[“0_left”]/合并后的“df”[“0_right”] #合并后的“df”[合并后的“df”[“value”]=“yes”] palete=“green”:“green”,“red”:“red”可选您可以选择自己的 plt.图(图尺寸=(12,6)) sns.barplot(x='variable',y='proportion',hue='color',data=merged_f[merged_f['value']='yes'],palete=palete) PLT.Xticks(旋转=65) #plt.savefig('numbers.png') 显示() < /代码>
|
|
|
EvitaSchaap · 计算按另一列分组的标志百分比 1 年前 |
|
mxplk · 为具有条件的组设置布尔掩码 1 年前 |
|
|
Leyla Elkhamlichi · 按特定值计数和分组 1 年前 |
|
|
KL_ · 熊猫分组和concat多行 1 年前 |
|
DGMS89 · Groupby索引,并保持给定单个列的最大列值 1 年前 |