Python數據分析與處理(一)–北京高考分數線統計分析

前言:

為瞭幫助廣大考生和傢長瞭解高考歷年的錄取情況,很多網站都匯總瞭各省市的錄取控制分數線,為廣大考生填報志願提供參考。因受多種因素影響,每年的分數線或多或少會有一些變動。采集北京2006-2019年的信息。使用Python的Pandas庫完成以下數據分析。

1.1 數據爬取

包含三部分內容:從哪裡爬取,如何爬取,爬取的結果

代碼:

import pandas as pd

import numpy as np

data=pd.read_excel("scores.xlsx",header=1)

print(data)

運行結果:

img

分析:我是讀取的本地的數據文件進行的數據分析。

有興趣的話可以從網站上面下載相關的數據或者是自己使用爬蟲爬取相關的數據源。進行數據分析

這個數據的分析部分我主要是采用的是Pandas numpy做數據的預處理。

matplotlib進行數據的可視化展示。

1.2 最高分最低分統計

mindata= data.groupby(['文科','理科'], as_index=False).min(axis=1) 

maxdata= data.groupby(['文科','理科'], as_index=False).max(axis=2) 

print(data.min())

print(data.max())

img

進行數據的處理,最高分最低分統計,因為有兩個不同的年份的成績,並且分瞭文科和理科所以就有2個文科2個理科

  • 我們使用groupby按照文理科進行分組
  • 然後使用max()min()求最大值和最小值‘
  • 經過分析處理可以看到打印出來的最大值和最小值

1.3 一本二本理科差值統計

代碼:

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])

運行結果:

image-20211227171040318

註意:

首先我們取出相應的文理科一本以及二本的成績,然後再進行相關的極差的計算就是使用前一個數減去後面的一個數就OK。

print(s1math[0]-s1math[2])

1.4 2006—2019年近14年每科分數線的平均值統計

代碼:

# 2006—2019年近14年每科分數線的平均值統計

data1=data[data['Unnamed: 0'].between(2006, 2014, inclusive=True)].groupby(['Unnamed: 0']).mean()

print(data1)

運行結果:

img

首先是進行數據的提取,然後進行平均值的求取。在這裡我算的麻煩瞭,因為本來就是一個年份對應的是一個成績。不是一對多的關系,所以下面的方法要更好一些。

也可以使用mean方法進行相關的平均值求取。

image-20211227171528771

是一個成績。不是一對多的關系,所以下面的方法要更好一些。

也可以使用mean方法進行相關的平均值求取。

到此這篇關於Python數據分析與處理北京高考分數線統計分析的文章就介紹到這瞭,更多相關Python數據分析與處理內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: