使用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
用于绘图。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了