首页 > 解决方案 > 如何绘制没有 0 的数据帧的单列(直方图)

问题描述

我有一个巨大的数据框,如下所示:

                   Date   value
1   2022-01-01 00:00:00   0.000
2   2022-01-01 01:00:00   0.000
3   2022-01-01 02:00:00   0.000
4   2022-01-01 08:00:00   0.058
5   2022-01-01 09:00:00   4.419
6   2022-01-01 10:00:00  14.142

我只想在直方图中绘制“值”列但没有 0 值。我怎么做?

我努力了 :

plt.hist(df['value' >0], bins=50)
plt.hist(df['value' =! 0], bins=50)

但没有运气。有任何想法吗?

非常感谢

标签: pythonpandasdataframematplotlibhistogram

解决方案


存在语法错误df['value' > 0]-- 需要是df[df['value'] > 0]df[df.value > 0]

这个想法是你创建一个布尔索引df.value

>>> df.value > 0
0    False
1     True
2    False
3     True
4     True
5     True
Name: value, dtype: bool

然后使用该索引df来检索True索引:

>>> df[df.value > 0]
date    value
1   2022/01/01  0.100
3   2022/01/01  0.058
4   2022/01/01  4.419
5   2022/01/01  14.142

在绘图方面,您也可以直接使用 pandas 进行绘图:

>>> df[df.value > 0].plot.hist(bins=50)

推荐阅读