用python做频数分析_如何用Python制作频率(频数)分布表(图)?
1.數據預處理
導入包
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
導入數據(數據資源分享鏈接見文末)
data = pd.read_excel(r'數據.xlsx')
在Console查看導入的數據
data
因為原excel文件里還有其他信息,所以數據需要處理
處理數據
在Console查看data的數據類型:
type(data)
取Dataframe類型的數據的第一列:
data1=data.iloc[:,0]
統計數據個數:
發現少1個數(總共應該有50個數)
原來是第一個數4.1被當成了DataFrame的索引:
補充缺失的值4.1
先在Console查看data1的數據類型
type(data1)
補充Series的缺失值:
n=pd.Series([4.1])
data2=data1.append(n)
2.制作頻數分布表
將data2分為5個區間(0, 3],(3, 6],(6, 9],(9,12],(12,15]:
a=pd.cut(data2,[0,3,6,9,12,15], labels=[u"(0,3]",u"(3,6]",u"(6,9]",u"(9,12]",u"(12,15]"])
在Console查看a:
......
計算頻數
b=a.value_counts()
在Console查看b:
按照b的索引升序排序
b2=b.sort_index()頻數分布表
3.繪制頻數分布圖
將Series轉換為DataFrame,便于使用Seaborn繪圖:
c={'section':b2.index,'frequency':b2.values}
e=pd.DataFrame(c)
matplotlib字體的默認設置中并沒有中文字體,為避免中文字符亂碼,添加中文字體:
plt.rcParams['font.sans-serif']=['SimHei']
使用Seaborn的barplot繪制條形圖:
ax = plt.figure(figsize=(10, 5)).add_subplot(111)
sns.barplot(x="section",y="frequency",data=e,palette="Set3") #palette設置顏色
設置y軸刻度范圍:
ax.set_ylim([0, 30])
設置坐標軸文字:
ax.set_xlabel('區間', fontsize=20)
ax.set_ylabel('頻數', fontsize=20)
設置標題:
ax.set_title('頻數分布圖', size=40)
設置坐標軸刻度字體大小:
plt.xticks(fontsize=30)
plt.yticks(fontsize=30)
顯示每個柱體的值:
for x, y in zip(range(5), e.frequency):
ax.text(x, y, '%d'%y, ha='center', va='bottom', fontsize=30, color='grey')
保存圖片:
plt.savefig('Python繪制的頻數分布圖.jpg',dpi=500,bbox_inches = 'tight')
#bbox_inches = 'tight'使保存的圖片顯示完整Python繪制的頻數分布圖
獲取數據和源代碼:
提取碼:n996
總結
以上是生活随笔為你收集整理的用python做频数分析_如何用Python制作频率(频数)分布表(图)?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2021爱分析・区域性银行数字化厂商全景
- 下一篇: websocket python爬虫_p