首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在熊猫数据帧中绘制NaN的百分比?

如何在熊猫数据帧中绘制NaN的百分比?
EN

Stack Overflow用户
提问于 2021-02-16 08:48:00
回答 1查看 739关注 0票数 2

我希望有人能帮我绘制熊猫数据框架的NaN百分比。我使用此代码计算百分比。

代码语言:javascript
复制
per_1 = df_1.isna().mean().round(4) * 100

它给了我这个结果。

代码语言:javascript
复制
HR              7.94
O2Sat          10.36
Temp           66.06
SBP            15.20
MAP             9.17
Age             0.00
Gender          0.00
ICULOS          0.00
SepsisLabel     0.00
Patient_iD      0.00

现在,我想把百分比和数据帧的列名一起画出来。有谁可以帮我?

致以问候。

更新:图如下所示。如何美化这一栏名才能看得清楚?

另外,是否可以像下图所示的那样在每个条形图上显示百分比?

更新:唯一的问题是人力资源百分比:

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-16 09:12:58

您可以使用以下代码片段绘制桶图:

代码语言:javascript
复制
import matplotlib.pyplot as plt

plt.bar(per_1.keys(), per_1.values)
plt.show()

样本输出:

更新:

根据您对问题的更新,这里有一个只保留百分比大于零的列的解决方案。此外,情节已被美化的要求,与价值显示在每个条形。

代码语言:javascript
复制
f, ax = plt.subplots()

for i,item in enumerate(zip(per_1.keys(),per_1.values)):
    if (item[1] > 0):
        ax.bar(item[0], item[1], label = item[0])
        ax.text(i - 0.25, item[1] + 1.5 , str(item[1]))

ax.set_xticklabels([]) 
ax.set_xticks([]) 
plt.ylim(0,80)
plt.ylabel('Percentage')
plt.xlabel('Columns')
plt.legend()
plt.show()

样本输出:

更新2:

若要将小数四舍五入到小数点后两位,请在前面的代码中替换这一行:

ax.text(i - 0.25, item[1] + 1.5 , str(np.round(item[1],2)))

如果尚未完成,则需要导入numpy:import numpy as np

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66221188

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档