使用Python获取Excel数据

使用Python获取Excel数据

import pandas as pd

在处理excel表格中,python能够对数据进行更好的批量处理

常用的读取方面:pandas是在excel表格处理中读取和查询最为简单方便的包。但在表格数据修改或者对空白单元格写入数据时,openpyxl更为方便

具体使用pandas导入excel流程如下:

# index_col 是表的索引 sheet_name 是在一个excel里面有多个表,指定哪张表
table = pd.read_excel(r'file_path', index_col="学号",sheet_name="Sheet1")
# 查看前几行数据
print(table.head())

# 查看数据的基本信息
print(table.info())

# 描述性统计
print(table.describe())

# 选择特定列
print(table[['姓名', '性别']])

# 选择特定行
print(table.loc[1001])  # 假设1001是某学生的学号

# 使用 iloc 选择
print(table.iloc[0])  # 选择第一行

# 筛选出所有女生
female_students = table[table['性别'] == '女']
print(female_students)

# 筛选年龄大于20岁的学生
students_over_20 = table[table['年龄'] > 20]
print(students_over_20)

# 删除含有缺失值的行
clean_table = table.dropna()
print(clean_table)

# 填充缺失值
filled_table = table.fillna(value={'年龄': 20})
print(filled_table)

# 添加新列
table['总评成绩'] = table['平时成绩'] * 0.3 + table['期末成绩'] * 0.7
print(table)

# 应用函数
def grade_to_score(grade):
    if grade >= 90:
        return '优秀'
    elif grade >= 80:
        return '良好'
    elif grade >= 70:
        return '中等'
    else:
        return '及格'

table['成绩等级'] = table['总评成绩'].apply(grade_to_score)
print(table)

# 按照总评成绩降序排列
sorted_table = table.sort_values(by='总评成绩', ascending=False)
print(sorted_table)

# 分组计算平均年龄
average_age_by_gender = table.groupby('性别')['年龄'].mean()
print(average_age_by_gender)

# 导出到新的 Excel 文件
table.to_excel('output.xlsx')

当你使用 Pandas 读取 Excel 文件并将其存储为 DataFrame 时,你可以执行多种操作。基于你提供的代码,我们假设你已经有一个名为 table 的 DataFrame,它通过 学号 列设置为索引。以下是一些你可以执行的操作示例:

1. 查看数据基本信息

python深色版本

1import pandas as pd
2
3# 读取 Excel 文件
4table = pd.read_excel(r'C:\Users\DEMON\Desktop\桌面暂不用\20级计科7班人员名单.xlsx', index_col="学号", sheet_name="sheet1")
5
6# 查看前几行数据
7print(table.head())
8
9# 查看数据的基本信息
10print(table.info())
11
12# 描述性统计
13print(table.describe())

2. 数据选择与索引

python深色版本

1# 选择特定列
2print(table[['姓名', '性别']])
3
4# 选择特定行
5print(table.loc[1001])  # 假设1001是某学生的学号
6
7# 使用 iloc 选择
8print(table.iloc[0])  # 选择第一行

3. 数据筛选

python深色版本

1# 筛选出所有女生
2female_students = table[table['性别'] == '女']
3print(female_students)
4
5# 筛选年龄大于20岁的学生
6students_over_20 = table[table['年龄'] > 20]
7print(students_over_20)

4. 数据清洗

python深色版本

1# 删除含有缺失值的行
2clean_table = table.dropna()
3print(clean_table)
4
5# 填充缺失值
6filled_table = table.fillna(value={'年龄': 20})
7print(filled_table)

5. 数据转换

python深色版本

1# 添加新列
2table['总评成绩'] = table['平时成绩'] * 0.3 + table['期末成绩'] * 0.7
3print(table)
4
5# 应用函数
6def grade_to_score(grade):
7    if grade >= 90:
8        return '优秀'
9    elif grade >= 80:
10        return '良好'
11    elif grade >= 70:
12        return '中等'
13    else:
14        return '及格'
15
16table['成绩等级'] = table['总评成绩'].apply(grade_to_score)
17print(table)

6. 数据排序

python深色版本

1# 按照总评成绩降序排列
2sorted_table = table.sort_values(by='总评成绩', ascending=False)
3print(sorted_table)

7. 数据聚合

python深色版本

1# 分组计算平均年龄
2average_age_by_gender = table.groupby('性别')['年龄'].mean()
3print(average_age_by_gender)

8. 数据导出

python深色版本

1# 导出到新的 Excel 文件
2table.to_excel('output.xlsx')

9. 数据可视化

python深色版本

1import matplotlib.pyplot as plt
2
3# 绘制成绩分布图
4plt.figure(figsize=(10, 6))
5table['总评成绩'].hist(bins=10)
6plt.title('成绩分布')
7plt.xlabel('总评成绩')
8plt.ylabel('人数')
9plt.show()

请根据实际的数据结构调整上述代码。如果表中有更多列或其他数据类型,你可能需要相应地修改这些示例。此外,确保你的环境中安装了必要的库,如 matplotlib 用于绘图。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值