用Python统计各个省份的招生单位总数和其中211、985高校个数 。原始数据为school.xls,生成的文件为number_of_schools.xls。
时间: 2023-06-11 15:10:06 浏览: 64
可以使用Python中的pandas库来读取和处理Excel文件。以下是一个可能的实现:
```python
import pandas as pd
# 读取原始数据
df = pd.read_excel('school.xls')
# 统计每个省份的招生单位总数和211、985高校个数
province_stats = df.groupby('省份').agg({
'招生单位': 'count',
'211': 'sum',
'985': 'sum'
}).reset_index()
# 保存结果到Excel文件
province_stats.to_excel('number_of_schools.xls', index=False)
```
解释一下代码:
1. 首先使用`pd.read_excel`函数读取Excel文件,并将其存储在DataFrame对象`df`中。
2. 使用`groupby`函数按照省份进行分组,然后使用`agg`函数对每个分组进行聚合。其中,`'招生单位': 'count'`表示计算每个分组中的行数,即招生单位总数;`'211': 'sum'`和`'985': 'sum'`表示对每个分组中的211和985列求和,即211、985高校个数。
3. 使用`reset_index`函数将结果转换为DataFrame对象,并重置索引。
4. 最后使用`to_excel`函数将结果保存到Excel文件中,其中`index=False`表示不保存行索引。
相关问题
用Python统计各个省份的招生单位总数 ,统计其中211、985高校有多少 。原始数据为school.xls,生成的文件为number_of_schools.xls。
首先,我们需要使用Python中的pandas库来读取Excel文件,并进行数据处理和统计。然后,我们可以使用pandas的groupby方法按照省份对数据进行分组,并统计每个省份的招生单位总数和211、985高校的数量。
以下是完整的代码实现:
```python
import pandas as pd
# 读取Excel文件
data = pd.read_excel('school.xls')
# 按照省份进行分组,并统计招生单位总数和211、985高校的数量
result = data.groupby('省份').agg({'名称': 'count', '是否为211': 'sum', '是否为985': 'sum'})
# 将结果保存到Excel文件中
result.to_excel('number_of_schools.xls')
```
在上面的代码中,我们使用了pandas的agg方法来对每个分组进行聚合操作。其中,`{'名称': 'count', '是否为211': 'sum', '是否为985': 'sum'}`表示对每个分组计算招生单位总数、211高校数量和985高校数量的总和。
运行上述代码后,会生成一个名为`number_of_schools.xls`的Excel文件,其中包含了各个省份的招生单位总数、211高校数量和985高校数量的统计结果。
用Python统计各个省份有招生单位总数 ,统计其中211、985高校有多少 ,原始数据为schools.xls,生成的文件为number_of_schools.xls。
首先,需要安装第三方库`xlrd`和`xlwt`,可以通过以下命令进行安装:
```
pip install xlrd xlwt
```
然后,可以使用以下代码进行统计:
```python
import xlrd
import xlwt
# 打开原始数据文件
data = xlrd.open_workbook('schools.xls')
# 获取表格中的第一个工作簿
sheet = data.sheet_by_index(0)
# 定义一个字典,用于存储各个省份的招生单位总数
provinces = {}
# 定义变量,用于统计211、985高校的数量
count_211 = 0
count_985 = 0
# 遍历表格中的每一行数据
for i in range(sheet.nrows):
# 获取当前行的省份信息和招生单位名称
province = sheet.cell(i, 0).value.strip()
school = sheet.cell(i, 1).value.strip()
# 如果当前省份在字典中不存在,则添加进去,并将招生单位总数初始化为1
if province not in provinces:
provinces[province] = 1
else:
# 否则,将当前省份的招生单位总数加1
provinces[province] += 1
# 判断当前招生单位是否为211、985高校
if '211' in school:
count_211 += 1
if '985' in school:
count_985 += 1
# 创建一个新的Excel文件
workbook = xlwt.Workbook(encoding='utf-8')
# 在新文件中创建一个工作簿
worksheet = workbook.add_sheet('Sheet1')
# 写入表头
worksheet.write(0, 0, '省份')
worksheet.write(0, 1, '招生单位总数')
# 写入数据
row = 1
for province, count in provinces.items():
worksheet.write(row, 0, province)
worksheet.write(row, 1, count)
row += 1
# 写入211、985高校的数量
worksheet.write(row, 0, '211高校数量')
worksheet.write(row, 1, count_211)
row += 1
worksheet.write(row, 0, '985高校数量')
worksheet.write(row, 1, count_985)
# 保存文件
workbook.save('number_of_schools.xls')
```
以上代码中,我们首先读取了原始数据文件`schools.xls`,然后遍历表格中的每一行数据,统计各个省份的招生单位总数,并判断当前招生单位是否为211、985高校,并统计数量。最后,将统计结果写入一个新的Excel文件`number_of_schools.xls`中,并保存。