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

从 csv 数据绘制频率直方图的错误

从 csv 数据绘制频率直方图的错误

慕姐4208626 2022-07-19 20:49:35
我正在 python3 上使用带有 pandas 模块的 csv 文件。csv文件由5列组成:职位、公司名称、职位描述、评论数量、职位位置;我想绘制一个频率直方图,我只选择包含“机械工程师”一词的工作,并找到“机械工程师”工作的 5 个最常见位置的频率。所以,我定义了一个变量 engloc 来存储所有“机械工程师”的工作。engloc=df[df.position.str.contains('mechanical engineer|mechanical engineering', flags=re.IGNORECASE, regex=True)].location并用我在网上找到的代码用 matplotlib 做了一个直方图 x = np.random.normal(size = 1000) plt.hist(engloc, bins=50) plt.gca().set(title='Frequency Histogram ', ylabel='Frequency');但它是这样打印的我如何绘制一个正确的频率直方图,它仅使用 5 个最常见的位置来绘制包含“机械工程师”字样的工作,而不是将所有位置都放在图中?这是来自 csv 文件的示例 
查看完整描述

1 回答

?
守着星空守着你

TA贡献1799条经验 获得超8个赞

以下几行的内容应该可以帮助您处理数字数据:


import numpy as np

counts_, bins_ = np.histogram(englog.values)

filtered = [(c,b) for (c,b) in zip(counts_,bins_) if counts_>=5]

counts, bins = list(zip(*filtered))

plt.hist(bins[:-1], bins, weights=counts)

对于字符串类型,请尝试:


from collections import Counter 

coords, counts = list(zip(*Counter(englog.values).most_common(5)))

plt.bar(coords, counts)


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

添加回答

举报

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