如何在python中绘制具有非数字值的表?

时间:2017-06-08 11:29:58

标签: python matplotlib

我有一个包含三列的数据框,我想将其绘制成图表。我需要图表来显示"是"有多少(或者是什么&%;%)来自整个"覆盖"的行。我很难创建图表,因为这些是非数字值。有人可以提出建议吗?

parent      rule        coverage
AFKS RM     AFKS RM     Yes
AFLT RM     AFLT RM     Yes
AGRO LI     NaN         No
AKRN RM     AKRN RM     Yes
ALRS RM     ALRS RM     Yes
BANE RM     BANE RM     Yes

我查看了Stackoverflow中的其他一个答案,并尝试了下面的内容,但它给了我" TypeError:Empty' DataFrame':没有要绘制的数字数据"。

grouped = df.groupby(['coverage'])['parent'] grouped.sum().plot(kind='bar')

我也尝试计算覆盖率,但不确定如果这是正确的方式以及如何从这里进行绘制。

df = df[result['coverage']=='Yes'].count() /df['coverage'].count()

1 个答案:

答案 0 :(得分:0)

找到百分比的最简单方法是使用mean:

(df.loc[:,'coverage'] == 'Yes').mean()

输出:

0.83333333333333337

绘图:

df.groupby( '覆盖')[ '覆盖']。COUNT()。plot.pie(autopct = '%。2F',figsize =(5,5)) enter image description here