我正在 python3 上使用帶有 pandas 模塊的 csv 文件。csv文件由5列組成:職位、公司名稱、職位描述、評(píng)論數(shù)量、職位位置;我想繪制一個(gè)頻率直方圖,我只選擇包含“機(jī)械工程師”一詞的工作,并找到“機(jī)械工程師”工作的 5 個(gè)最常見位置的頻率。所以,我定義了一個(gè)變量 engloc 來存儲(chǔ)所有“機(jī)械工程師”的工作。engloc=df[df.position.str.contains('mechanical engineer|mechanical engineering', flags=re.IGNORECASE, regex=True)].location并用我在網(wǎng)上找到的代碼用 matplotlib 做了一個(gè)直方圖 x = np.random.normal(size = 1000) plt.hist(engloc, bins=50) plt.gca().set(title='Frequency Histogram ', ylabel='Frequency');但它是這樣打印的我如何繪制一個(gè)正確的頻率直方圖,它僅使用 5 個(gè)最常見的位置來繪制包含“機(jī)械工程師”字樣的工作,而不是將所有位置都放在圖中?這是來自 csv 文件的示例
1 回答

守著星空守著你
TA貢獻(xiàn)1799條經(jīng)驗(yàn) 獲得超8個(gè)贊
以下幾行的內(nèi)容應(yīng)該可以幫助您處理數(shù)字?jǐn)?shù)據(jù):
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)
對(duì)于字符串類型,請(qǐng)嘗試:
from collections import Counter
coords, counts = list(zip(*Counter(englog.values).most_common(5)))
plt.bar(coords, counts)
添加回答
舉報(bào)
0/150
提交
取消