使用python将已有的三个文件(学生信息表、学生课程表、学生就业信息表)进行数据清晰并用echarts进行数据展示
时间: 2024-03-11 13:46:48 浏览: 69
python 文件 学生信息查询系统
好的,我可以为您提供一些思路和代码示例。
数据清洗部分:
1. 导入需要用到的库
```python
import pandas as pd
import numpy as np
```
2. 读取三个文件
```python
df_students = pd.read_csv('students.csv')
df_courses = pd.read_excel('courses.xlsx')
df_employment = pd.read_json('employment.json')
```
3. 合并三个文件
```python
# 合并学生信息表和学生课程表
df = pd.merge(df_students, df_courses, on='id')
# 合并学生信息表和学生就业信息表
df = pd.merge(df, df_employment, on='id')
```
4. 数据清洗和预处理
```python
# 删除重复行
df.drop_duplicates(inplace=True)
# 删除空值行
df.dropna(inplace=True)
# 格式转换和重命名列
df['birthday'] = pd.to_datetime(df['birthday'])
df.rename(columns={'name_x': 'name', 'name_y': 'course_name'}, inplace=True)
# 计算新的列
df['age'] = (pd.Timestamp.now() - df['birthday']).astype('timedelta64[Y]')
df['year'] = df['admission_date'].dt.year
df['semester'] = np.where(df['admission_date'].dt.month < 9, '上学期', '下学期')
# 重新排列列的顺序
df = df[['id', 'name', 'gender', 'birthday', 'age', 'admission_date', 'year', 'semester',
'course_id', 'course_name', 'score', 'employment_status', 'salary']]
```
数据可视化部分:
1. 导入需要用到的库
```python
import echarts
from pyecharts import options as opts
from pyecharts.charts import Bar
```
2. 创建图表对象
```python
bar_chart = Bar()
```
3. 添加数据
```python
# 取每个学年的平均薪资
yearly_salary = df.groupby('year')['salary'].mean().reset_index()
# 绘制柱状图
bar_chart.add_xaxis(list(yearly_salary['year']))
bar_chart.add_yaxis('平均薪资', list(yearly_salary['salary']))
```
4. 配置图表选项
```python
# 设置标题和坐标轴标签
bar_chart.set_global_opts(title_opts=opts.TitleOpts(title='每个学年的平均薪资'),
xaxis_opts=opts.AxisOpts(name='学年'),
yaxis_opts=opts.AxisOpts(name='平均薪资'))
# 显示图表
bar_chart.render('yearly_salary.html')
```
以上是一个简单的示例,您可以根据自己的数据和需求进行修改和扩展。
阅读全文