当前位置:   article > 正文

Python据框和序列的访问、切片及运算(中国大学数据集)_中国大学数据集.scv

中国大学数据集.scv

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

目录

一、实验要求:

 二、相关文件

三、使用 Jupyter工具导入项目步骤

三、实验内容

1.导入pandas numpy模块并读取文件 中国大学数据集.csv , 显示前topn行

2.查看该数据集的基本情况

 3.查看每一列空值数量

4.对于双一流这一列的替换

5.请输出每个省份高校数量列表,按照降序排序并输出

 6.计算当前数据集中大学分布于多少个省份中

7.计算双一流学校数量

8.计算985+211学校的数量

9.从data中删除索引为1024的学校,形成一个新的数据框data_no_1024, 并显示

 10.从data中删除掉 地址 列,形成一个新的数据框data_no_addr, 并显示

11.从 data 中选择所有北京、湖北、广东的学校

交叉分析

12.每个省份公或民办学校数量的交叉分析

13.每个省份,不同类型学校 数量的交叉分析,并将结果保存到 各省份学校类型统计表.xlsx

四、总结


一、实验要求:

本次实验主要目的如下:

  • 熟悉Python编程,基础结构流程;
  • 数据框和序列的访问、切片及运算;
  • pandas导入外部数据文件;
  • 本次实验使用的数据集为 中国大学数据集, 该数据集每条数据字段含义如下:

 二、相关文件

链接:https://pan.baidu.com/s/16N45wcmtoRKBHLtt_ZwRNg 
提取码:kkdq

三、使用 Jupyter工具导入项目步骤

1.菜单栏中找到Anaconda Prompt (Anaconda3),点击运行


2.输入: cd 指定项目的文件夹路径


3.启动项目: Jupyter Notebook
4.复制倒数第一个链接到网页访问。

三、实验内容

1.导入pandas numpy模块并读取文件 中国大学数据集.csv , 显示前topn行

  1. # 导入pandas numpy模块并读取文件 中国大学数据集.csv , 显示前topn行
  2. # todo
  3. import pandas as pd
  4. import numpy as np
  5. path='中国大学数据集.csv'
  6. whc_id = 629
  7. topn = whc_id % 43
  8. data = pd.read_csv(path,sep=',')
  9. h=data.head(topn)
  10. print(h)

2.查看该数据集的基本情况

  1. # 查看该数据集的基本情况
  2. #print(data.shape)
  3. #print(data.info())
  4. print("该数据集的有{0}条数据".format(data.shape[0])) # 请在{}中填写表示行数的正确表达式


 3.查看每一列空值数量

  1. # 查看每一列空值数量
  2. # todo
  3. data.isnull().sum()

 

4.对于双一流这一列的替换

# 将字段里的双一流字符串 替换为数值1, 原地替换(即inplace=True)
# 将字段里的空值替换为 2
# 提示可以使用Series.replace() 

  1. data.replace('双一流', 1, inplace=True)
  2. # 将整个 DataFrame 中的空值替换为 2,原地替换
  3. df.fillna(2, inplace=True)
  4. print(df)

5.请输出每个省份高校数量列表,按照降序排序并输出

 提示: 可以使用groupby

  1. # 请输出每个省份高校数量列表, 提示: 可以使用groupby
  2. counts = data.groupby("省份")["大学"].count()
  3. # 按照降序排序并输出
  4. sorted_counts = counts.sort_values(ascending=False)
  5. print(sorted_counts)
  6. # 并且按照降序进行排序 输出
  7. # todo

 

 6.计算当前数据集中大学分布于多少个省份中

  1. # 计算当前数据集中大学分布于多少个省份中
  2. num_provinces = len(data["省份"].unique())
  3. print(f"当前数据集中大学分布于{num_provinces}个省份中。")

7.计算双一流学校数量

  1. # 计算双一流学校数量
  2. #print(data)
  3. #注,根据上面的题,已经把双一流这一列中的字符串“双一流"改为了 1
  4. #num_top_universities = data["双一流"].sum()
  5. num_top_universities = (data["双一流"]==1).sum()
  6. print(f"双一流学校数量为{num_top_universities}所。")

 

8.计算985+211学校的数量

注意:有的学校既是985也是211, 所以有可能重复

  1. # 计算985+211学校的数量。 注意有的学校既是985也是211, 所以有可能重复
  2. num_985_universities = len(data[data["985"]==1])
  3. num_211_universities = len(data[data["211"]==1])
  4. print(f"985+211学校数量为{num_985_universities+num_211_universities}所。")

 

9.从data中删除索引为1024的学校,形成一个新的数据框data_no_1024, 并显示

  1. # 从data中删除索引为1024的学校,形成一个新的数据框data_no_1024, 并显示
  2. data_no_1024 = data.drop(index=1024)
  3. # 显示新的数据框
  4. print(data_no_1024)

 10.从data中删除掉 地址 列,形成一个新的数据框data_no_addr, 并显示

  1. # 从data中删除掉 地址 列,形成一个新的数据框data_no_addr, 并显示
  2. # todo
  3. data_no_addr = None # edit this line
  4. # 删除地址列,形成新的数据框
  5. data_no_addr = data.drop(columns=['地址'])
  6. # 显示新的数据框
  7. print(data_no_addr)

11.从 data 中选择所有北京、湖北、广东的学校

形成三个数据框 data_bj, data_hb, data_gd
并按照湖北、北京、广东的顺序将这三个学校从上到下拼接在一起形成一个新的数据框 data_cat.并显示data_cat

  1. # edit lines below
  2. # 选择所有北京学校,形成新的数据框 data_bj
  3. data_bj = data[data['省份'] == '北京']
  4. # 选择所有湖北学校,形成新的数据框 data_hb
  5. data_hb = data[data['省份'] == '湖北']
  6. # 选择所有广东学校,形成新的数据框 data_gd
  7. data_gd = data[data['省份'] == '广东']
  8. # 将三个数据框按照湖北、北京、广东的顺序拼接在一起,形成新的数据框 data_cat
  9. data_cat = pd.concat([data_hb, data_bj, data_gd], axis=0)
  10. # 显示新的数据框 data_cat
  11. print(data_cat)

交叉分析

交叉分析通常用于分析两个或两个以上分组变量之间的关系,以交叉表形式进行变量间关系的对比分析;
从数据的不同维度,综合进行分组细分,进一步了解数据的构成、分布特征。交叉分析有数据透视表和交叉表两种:

透视表 pd.pivot_table(data,values,index,columns,agg,func,fill_value,margins)

  • data:要应用透视表的数据框。
  • values:待聚合的列名,默认聚合所有数值列。
  • index:用于分组的列名或其他分组键,出现在结果透视表的行。
  • columns:用于分组的列名或其他分组键,出现在结果透视表的列。
  • aggfunc:聚合函数或函数列表,默认为'mean',可以是任何对groupby有效的函数。
  • fill_value:用于替换结果表中的缺失值。
  • margins:添加行/列小计和总计,默认为False。

pivot_table()函数返回值是数据透视表的结果,该函数相当于Excel中的数据透视表功能。

12.每个省份公或民办学校数量的交叉分析

  1. # 每个省份公或民办学校数量的交叉分析
  2. pd.pivot_table(data, values=['大学'], index=['省份'], columns=['公或民办'], aggfunc=[np.size], margins=True)

13.每个省份,不同类型学校 数量的交叉分析。 并将结果保存到 各省份学校类型统计表.xlsx

  1. # 每个省份,不同类型学校 数量的交叉分析。 并将结果保存到 各省份学校类型统计表.xlsx
  2. from pandas import ExcelWriter
  3. #print(data)
  4. # 对每个省份和学校类型进行分组,统计数量
  5. grouped = data.groupby(['省份', '类型'])['大学'].count()
  6. # 将分组结果转换为数据框,按照省份和学校类型进行重塑
  7. result = pd.DataFrame(grouped).reset_index().pivot(index='省份', columns='类型', values='大学')
  8. # 将结果保存到Excel文件
  9. with ExcelWriter('各省份学校类型统计表.xlsx') as writer:
  10. result.to_excel(writer)
  11. # 显示结果
  12. print(result)
  13. # todo

 

四、总结

提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了Python据框和序列的访问、切片及运算,以及讲解了使用jupyter工具导入项目。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/767749
推荐阅读
相关标签
  

闽ICP备14008679号