如何解决如何在熊猫数据框中绘制 NaN 的百分比?
我希望有人帮助我绘制熊猫数据框的 NaN 百分比。我使用此代码计算了百分比。
per_1 = df_1.isna().mean().round(4) * 100
它给了我这个结果。
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
现在,我想绘制百分比以及数据框的列名。有人可以帮我吗?
问候。
更新:图表如下所示。怎么美化这个才能看清楚列名?
此外,是否可以在每个条形上显示百分比,如下图所示?
更新:唯一的问题是人力资源百分比:
解决方法
您可以使用以下代码片段绘制条形图::
import matplotlib.pyplot as plt
plt.bar(per_1.keys(),per_1.values)
plt.show()
示例输出:
更新:
根据您对问题的更新,这是一个仅保留百分比大于零的列的解决方案。此外,该图已根据要求美化,并在每个条形图上显示值。
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,str(np.round(item[1],2)))
如果尚未完成,您将需要导入 numpy:
import numpy as np
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。