在 pandas 中操作直方图

我在pandas. 我想在绘制直方图时删除频率较低的某些值范围(不是单个值)。


对于下面的图像,假设我想删除与计数/频率低于 20 相对应的 Dataframe 变量的所有值。有人对此有任何解决方案吗?


# PR has value between 0 to 1700 

data['PR'].hist(bins = 160) #image on the left

data_openforest['PR'].hist(bins = 160) #image on the right

http://img4.mukewang.com/62baca7700018c2c03720243.jpg

http://img1.mukewang.com/62baca820001e47d03680244.jpg

慕神8447489
浏览 165回答 1
1回答

吃鸡游戏

像这样使用 pd.cut 应该可以:out = pd.cut(data_openforest['PR'], bins=160)counts = out.value_counts(sort=False)counts[counts > 20].plot.bar()plt.show()如果你想过滤你的 DataFrame,你必须这样做:data_openforest['bin'] = pd.cut(data_openforest['PR'], bins=160)bin_freq = data_openforest.groupby('bin').count()data_openforest = data_openforest.merge(bin_freq,                                         on='bin',                                         how='left',                                        suffixes=("_bin",                                                   "_bin_freq"))然后您可以轻松过滤您的 DataFrame。然后你将不得不做一个条形图,而不是一个历史。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python