Python數據分析與處理(一)--北京高考分數線統(tǒng)計分析
前言:
為了幫助廣大考生和家長了解高考歷年的錄取情況,很多網站都匯總了各省市的錄取控制分數線,為廣大考生填報志愿提供參考。因受多種因素影響,每年的分數線或多或少會有一些變動。采集北京2006-2019年的信息。使用Python的Pandas庫完成以下數據分析。
1.1 數據爬取
包含三部分內容:從哪里爬取,如何爬取,爬取的結果
代碼:
import pandas as pd import numpy as np data=pd.read_excel("scores.xlsx",header=1) print(data)
運行結果:
分析:我是讀取的本地的數據文件進行的數據分析。
有興趣的話可以從網站上面下載相關的數據或者是自己使用爬蟲爬取相關的數據源。進行數據分析
這個數據的分析部分我主要是采用的是Pandas numpy
做數據的預處理。
和matplotlib
進行數據的可視化展示。
1.2 最高分最低分統(tǒng)計
mindata= data.groupby(['文科','理科'], as_index=False).min(axis=1) maxdata= data.groupby(['文科','理科'], as_index=False).max(axis=2) print(data.min()) print(data.max())
進行數據的處理,最高分最低分統(tǒng)計,因為有兩個不同的年份的成績,并且分了文科和理科所以就有2個文科2個理科
- 我們使用
groupby
按照文理科進行分組 - 然后使用
max()
和min()
求最大值和最小值‘ - 經過分析處理可以看到打印出來的最大值和最小值
1.3 一本二本理科差值統(tǒng)計
代碼:
s1math=data["一本分數線","理科"] print(s1math) print(s1math[0]-s1math[2]) s1c=data["一本分數線","文科"] print(s1c[0]-s1c[2]) s2math=data["二本分數線","理科"] print(s2math[0]-s2math[2]) s2c=data["二本分數線","文科"] print(s2math[0]-s2math[2])
運行結果:
注意:
首先我們取出相應的文理科一本以及二本的成績,然后再進行相關的極差的計算就是使用前一個數減去后面的一個數就OK。
print(s1math[0]-s1math[2])
1.4 2006—2019年近14年每科分數線的平均值統(tǒng)計
代碼:
# 2006—2019年近14年每科分數線的平均值統(tǒng)計 data1=data[data['Unnamed: 0'].between(2006, 2014, inclusive=True)].groupby(['Unnamed: 0']).mean() print(data1)
運行結果:
首先是進行數據的提取,然后進行平均值的求取。在這里我算的麻煩了,因為本來就是一個年份對應的是一個成績。不是一對多的關系,所以下面的方法要更好一些。
也可以使用mean
方法進行相關的平均值求取。
是一個成績。不是一對多的關系,所以下面的方法要更好一些。
也可以使用mean
方法進行相關的平均值求取。
到此這篇關于Python數據分析與處理北京高考分數線統(tǒng)計分析的文章就介紹到這了,更多相關Python數據分析與處理內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Python學習筆記之pandas索引列、過濾、分組、求和功能示例
這篇文章主要介紹了Python學習筆記之pandas索引列、過濾、分組、求和功能,結合實例形式分析了Python針對抓取保存的csv數據使用pandas進行索引列、過濾、分組、求和等操作的相關實現技巧,需要的朋友可以參考下2019-06-06Python編程語言的35個與眾不同之處(語言特征和使用技巧)
這篇文章主要介紹了Python編程語言的35個與眾不同之處,Python編程語言的語言特征和使用技巧,需要的朋友可以參考下2014-07-07