【发布时间】:2021-12-05 07:21:22
【问题描述】:
我使用代码计算了数据框中的缺失值:
per_B = df.isna().mean().round(4) * 100
并使用以下代码绘制,顶部是 NaN 值计数,但最后两个值计数位置放错了位置。
f, ax = plt.subplots(figsize=(20, 15))
for i,item in enumerate(zip(per_B.keys(), per_B.values)):
if (item[1] > 0):
ax.bar(item[0], item[1], label = item[0])
ax.text(i - 0.40, item[1] + 0.5 , str(np.round(item[1],2)))
ax.set_xticklabels([])
ax.set_xticks([])
plt.title('NaN Value percentage in Training Set B')
plt.ylim(0,115)
plt.ylabel('Percentage')
plt.xlabel('Columns')
plt.legend(loc='upper left')
plt.show()
由于最后两列的值计数放错了位置,有人可以帮我解决代码中的问题吗?
【问题讨论】:
-
作为调试的方式,索引值和标签值是否存在一一对应关系?
print(i)和print(np.round(item[1],2)) -
是的,但是我知道为什么最后 2 个标签放错了位置?或者,如果您知道将 NaN 百分比绘制为条形图的其他方式(代码)?那太好了……
-
当然,还有最重要的价值。
标签: python matplotlib seaborn nan