为了账号安全,请及时绑定邮箱和手机立即绑定

在 pandas 中操作直方图

在 pandas 中操作直方图

慕神8447489 2022-06-28 17:31:13
我在pandas. 我想在绘制直方图时删除频率较低的某些值范围(不是单个值)。对于下面的图像,假设我想删除与计数/频率低于 20 相对应的 Dataframe 变量的所有值。有人对此有任何解决方案吗?# PR has value between 0 to 1700 data['PR'].hist(bins = 160) #image on the leftdata_openforest['PR'].hist(bins = 160) #image on the right
查看完整描述

1 回答

?
吃鸡游戏

TA贡献1829条经验 获得超7个赞


像这样使用 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。然后你将不得不做一个条形图,而不是一个历史。


查看完整回答
反对 回复 2022-06-28
  • 1 回答
  • 0 关注
  • 164 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信