第六篇【传奇开心果系列】Python的自动化办公库技术点案例示例:大学生数据全方位分析挖掘经典案例

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

'学生姓名': ['张三', '李四', '王五', '赵六', '钱七'],
'数学成绩': [85, 90, 78, 92, 88],
'英语成绩': [80, 88, 75, 95, 82],
'物理成绩': [88, 85, 79, 93, 90]

}

df = pd.DataFrame(data)

计算学生平均成绩

df[‘平均成绩’] = df[[‘数学成绩’, ‘英语成绩’, ‘物理成绩’]].mean(axis=1)

找出平均成绩最高的学生

best_student = df.loc[df[‘平均成绩’].idxmax()]

print(“平均成绩最高的学生是:”)
print(best_student)

找出数学成绩最高的学生

best_math_student = df.loc[df[‘数学成绩’].idxmax()]

print(“\n数学成绩最高的学生是:”)
print(best_math_student)


在这个示例代码中,首先创建了一个包含学生姓名、数学成绩、英语成绩和物理成绩的DataFrame。然后计算了每位学生的平均成绩,并找出了平均成绩最高的学生和数学成绩最高的学生。


你可以根据实际数据情况和需求,进一步扩展这个示例代码,进行更复杂的学生成绩数据挖掘分析,比如探索不同科目成绩之间的相关性、进行成绩排名、分析成绩分布等。通过Pandas强大的数据处理和分析功能,可以更深入地挖掘学生成绩数据背后的信息。


![在这里插入图片描述](https://img-blog.csdnimg.cn/c4842902cdb34c2ca0ef81100539f4a5.png)


3. 进一步挖掘数据示例代码


以下示例代码展示了如何使用 Pandas 进行更复杂的学生成绩数据挖掘分析,包括探索不同科目成绩之间的相关性、进行成绩排名以及分析成绩分布:



import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns

创建一个示例的学生成绩数据DataFrame

data = {
‘学生姓名’: [‘张三’, ‘李四’, ‘王五’, ‘赵六’, ‘钱七’],
‘数学成绩’: [85, 90, 78, 92, 88],
‘英语成绩’: [80, 88, 75, 95, 82],
‘物理成绩’: [88, 85, 79, 93, 90]
}

df = pd.DataFrame(data)

计算不同科目成绩之间的相关性

correlation_matrix = df[[‘数学成绩’, ‘英语成绩’, ‘物理成绩’]].corr()
print(“\n不同科目成绩之间的相关性:”)
print(correlation_matrix)

计算总成绩并进行排名

df[‘总成绩’] = df[‘数学成绩’] + df[‘英语成绩’] + df[‘物理成绩’]
df[‘排名’] = df[‘总成绩’].rank(ascending=False).astype(int)

print(“\n学生成绩排名:”)
print(df.sort_values(by=‘排名’))

分析成绩分布

plt.figure(figsize=(10, 6))
sns.histplot(df[‘总成绩’], bins=5, kde=True)
plt.title(‘学生成绩分布’)
plt.xlabel(‘总成绩’)
plt.ylabel(‘学生人数’)
plt.show()


在这个示例代码中,首先计算了不同科目成绩之间的相关性,然后根据学生的数学、英语和物理成绩计算了总成绩,并进行了排名。最后,利用 seaborn 库绘制了学生成绩的分布直方图,展示了学生成绩的分布情况。


通过这些数据挖掘探索分析,你可以更深入地了解学生成绩数据之间的关系、学生的总体表现情况以及成绩分布情况,为进一步的数据挖掘和分析提供了基础。你可以根据实际数据和需求,进一步扩展这个示例代码,进行更多维度的学生成绩数据挖掘分析。


### 三、大学生选课数据分析数据挖掘示例代码


![在这里插入图片描述](https://img-blog.csdnimg.cn/52aa8afc84234ae9815c87a14748ee1c.jpg)


1. 学生选课数据分析示例代码


下面是一个示例代码,演示如何利用 Pandas 分析学生的选课情况,了解学生的兴趣偏好、常见组合,以及探索不同专业或年级的选课趋势:



import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

创建一个示例的学生选课数据DataFrame

data = {
‘学生姓名’: [‘张三’, ‘李四’, ‘王五’, ‘赵六’, ‘钱七’],
‘专业’: [‘计算机科学’, ‘经济学’, ‘心理学’, ‘计算机科学’, ‘心理学’],
‘年级’: [3, 2, 4, 3, 1],
‘选课1’: [‘数据结构’, ‘微观经济学’, ‘心理统计学’, ‘算法设计’, ‘心理学导论’],
‘选课2’: [‘数据库系统’, ‘宏观经济学’, ‘实验心理学’, ‘机器学习’, ‘社会心理学’],
‘选课3’: [‘网络安全’, ‘金融学原理’, ‘临床心理学’, ‘深度学习’, ‘心理咨询’]
}

df = pd.DataFrame(data)

统计学生选课情况

course_columns = [‘选课1’, ‘选课2’, ‘选课3’]
all_courses = df[course_columns].values.flatten()
course_counts = pd.Series(all_courses).value_counts()

print(“\n常见选课组合:”)
print(course_counts)

绘制不同专业的选课情况

plt.figure(figsize=(12, 6))
sns.countplot(data=df, x=‘专业’, hue=‘选课1’)
plt.title(‘不同专业的选课情况’)
plt.xlabel(‘专业’)
plt.ylabel(‘选课1人数’)
plt.legend(title=‘选课1’, bbox_to_anchor=(1, 1))
plt.show()

绘制不同年级的选课情况

plt.figure(figsize=(12, 6))
sns.countplot(data=df, x=‘年级’, hue=‘选课2’)
plt.title(‘不同年级的选课情况’)
plt.xlabel(‘年级’)
plt.ylabel(‘选课2人数’)
plt.legend(title=‘选课2’, bbox_to_anchor=(1, 1))
plt.show()


这段代码继续了上面的示例,首先统计了学生常见的选课组合,然后通过绘制不同专业和年级的选课情况,可以更好地了解不同群体的选课偏好和趋势。


通过这些分析,你可以发现学生的选课偏好、常见组合,以及不同专业或年级的选课趋势,为学校课程设置、学生辅导等方面提供一定的参考。你可以根据实际数据和需求,进一步扩展这个示例代码,进行更深入的学生选课数据分析和挖掘。


![在这里插入图片描述](https://img-blog.csdnimg.cn/7530616c4b22472ba8c3c145c104cccb.jpg)


2. 学生选课数据挖掘示例代码


以下是一个示例代码,展示如何对学生选课数据进行更深入的挖掘,包括课程关联分析和热门课程推荐:



import pandas as pd
from mlxtend.frequent_patterns import apriori, association_rules

创建一个示例的学生选课数据DataFrame

data = {
‘学生姓名’: [‘张三’, ‘李四’, ‘王五’, ‘赵六’, ‘钱七’],
‘选课1’: [‘数据结构’, ‘微观经济学’, ‘心理统计学’, ‘算法设计’, ‘心理学导论’],
‘选课2’: [‘数据库系统’, ‘宏观经济学’, ‘实验心理学’, ‘机器学习’, ‘社会心理学’],
‘选课3’: [‘网络安全’, ‘金融学原理’, ‘临床心理学’, ‘深度学习’, ‘心理咨询’],
}

df = pd.DataFrame(data)

将选课数据转换成适合进行关联分析的形式

courses_list = df[[‘选课1’, ‘选课2’, ‘选课3’]].values.tolist()

将课程转换成独热编码形式

te = TransactionEncoder()
te_ary = te.fit(courses_list).transform(courses_list)
courses_df = pd.DataFrame(te_ary, columns=te.columns_)

使用Apriori算法进行频繁项集挖掘

frequent_itemsets = apriori(courses_df, min_support=0.2, use_colnames=True)

根据频繁项集生成关联规则

rules = association_rules(frequent_itemsets, metric=“confidence”, min_threshold=0.7)

print(“\n关联规则:”)
print(rules)

根据关联规则推荐热门课程

def recommend_courses(course_name):
recommended_courses = rules[rules[‘antecedents’].apply(lambda x: course_name in x)][‘consequents’].tolist()
if recommended_courses:
return recommended_courses[0]
else:
return “暂无推荐课程”

print(“\n针对选课’数据结构’的推荐课程:”)
print(recommend_courses(‘数据结构’))

print(“\n针对选课’心理学导论’的推荐课程:”)
print(recommend_courses(‘心理学导论’))


这部分代码继续了上面的示例,通过Apriori算法进行频繁项集挖掘,并根据关联规则生成热门课程推荐功能。最后,通过定义一个函数`recommend_courses`,可以根据输入的课程名称推荐相关的热门课程。


这样的数据挖掘探索分析可以帮助学校更好地了解学生的选课偏好,发现课程之间的关联性,为学校提供更好的课程推荐和课程设置建议。你可以根据实际的选课数据和需求,进一步扩展和优化这个示例代码,以满足更复杂的学生选课数据挖掘需求。


### 四、大学生活动参与数据分析数据挖掘示例代码


![在这里插入图片描述](https://img-blog.csdnimg.cn/4a502884eaea4e2a811a14d39eed4d8c.jpg)


1. 大学生活动参与数据分析示例代码


以下是一个示例代码,展示如何使用 Pandas 对学生参与各类活动的数据进行分析,以了解学生的社交圈子、兴趣爱好,并评估活动对学生成长的影响:



import pandas as pd

创建一个示例的学生活动参与数据DataFrame

data = {
‘学生姓名’: [‘张三’, ‘李四’, ‘王五’, ‘赵六’, ‘钱七’],
‘体育活动’: [1, 0, 1, 1, 0],
‘艺术活动’: [0, 1, 1, 0, 1],
‘科技活动’: [1, 1, 0, 1, 0],
‘学术活动’: [1, 1, 1, 0, 1],
}

df = pd.DataFrame(data)

统计每位学生参与各类活动的次数

df[‘总活动次数’] = df.iloc[:, 1:].sum(axis=1)

查看参与各类活动次数的分布情况

activity_counts = df.iloc[:, 1:].sum()

print(“各类活动参与次数统计:”)
print(activity_counts)

计算每种活动的参与率

activity_participation_rate = df.iloc[:,1:].mean() * 100

print(“\n各类活动参与率:”)
print(activity_participation_rate)

查找参与多种活动的学生

multi_activity_students = df[(df.iloc[:, 1:] > 0).sum(axis=1) > 1][‘学生姓名’].tolist()

print(“\n参与多种活动的学生:”)
print(multi_activity_students)

分析活动参与与学术成绩的关系

假设这里有学生的学术成绩数据,可以将学术成绩数据与活动参与数据进行关联分析

假设学术成绩数据

grades_data = {
‘学生姓名’: [‘张三’, ‘李四’, ‘王五’, ‘赵六’, ‘钱七’],
‘学术成绩’: [85, 78, 92, 70, 88]
}

grades_df = pd.DataFrame(grades_data)

将学术成绩数据与活动参与数据合并

merged_df = pd.merge(df, grades_df, on=‘学生姓名’)

计算活动参与与学术成绩的相关性

correlation = merged_df.corr()[‘学术成绩’].iloc[:-1]

print(“\n活动参与与学术成绩的相关性:”)
print(correlation)


这部分示例代码通过分析学生活动参与数据,统计了各类活动的参与次数、参与率,找出了参与多种活动的学生,并展示了活动参与与学术成绩之间的关系分析。通过这样的分析,可以更好地了解学生的兴趣爱好、社交圈子以及活动对学生成长的影响,为学校提供更好的学生发展和活动组织建议。你可以根据实际的学生活动参与数据和需求,进一步扩展和优化这个示例代码,以满足更复杂的数据分析需求。  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/59cacaa738f040299bde28797b9e9c4e.jpg)


2. 大学生参加活动数据挖掘示例代码


对学生参加活动数据进行挖掘可以帮助学校深入了解学生的兴趣爱好、社交圈子以及活动对学生成长的影响。以下是一个示例代码,展示如何进行频繁项集挖掘和关联规则生成,以发现学生参加活动之间的关联性:



from mlxtend.frequent_patterns import apriori
from mlxtend.frequent_patterns import association_rules

创建示例的学生活动参与数据DataFrame

data = {
‘学生姓名’: [‘张三’, ‘李四’, ‘王五’, ‘赵六’, ‘钱七’],
‘体育活动’: [1, 0, 1, 1, 0],
‘艺术活动’: [0, 1, 1, 0, 1],
‘科技活动’: [1, 1, 0, 1, 0],
‘学术活动’: [1, 1, 1, 0, 1],
}

df = pd.DataFrame(data)

将学生姓名列设置为索引列

df.set_index(‘学生姓名’, inplace=True)

将数据转换为适合进行频繁项集挖掘的格式

def encode_units(x):
if x <= 0:
return 0
if x >= 1:
return 1

df_encoded = df.applymap(encode_units)

进行频繁项集挖掘

frequent_itemsets = apriori(df_encoded, min_support=0.2, use_colnames=True)

生成关联规则

rules = association_rules(frequent_itemsets, metric=“confidence”, min_threshold=0.7)

print(“频繁项集:”)
print(frequent_itemsets)

print(“\n关联规则:”)
print(rules)


这段代码利用了 `mlxtend` 库进行频繁项集挖掘和关联规则生成。频繁项集挖掘可以帮助发现学生参加活动的频繁组合,而关联规则则可以揭示这些活动之间的关联性,例如哪些活动经常一起参加,以及它们之间的关联程度。通过分析这些关联规则,学校可以更好地了解学生的活动偏好和社交圈子,为活动组织和学生成长提供更有针对性的建议和支持。你可以根据实际数据的特点和需求,调整参数和阈值,进一步优化分析结果。


### 五、大学生消费行为数据分析数据挖掘示例代码


![在这里插入图片描述](https://img-blog.csdnimg.cn/42e4ba15715840839f41642b9e933343.jpg)


1. 大学生消费行为数据分析示例代码


下面是一个示例代码,展示如何利用 Pandas 分析学生的消费行为数据,包括食堂消费和校园卡消费,以了解学生的消费习惯和偏好:



import pandas as pd

创建示例的学生消费行为数据DataFrame

data = {
‘学生姓名’: [‘张三’, ‘李四’, ‘王五’, ‘赵六’, ‘钱七’],
‘食堂消费’: [20.5, 15.2, 18.0, 25.5, 12.8],
‘校园卡消费’: [30.0, 25.5, 28.2, 35.5, 20.3],
}

df = pd.DataFrame(data)

计算消费数据的统计信息

consumption_stats = df.describe()

print(“消费数据统计信息:”)
print(consumption_stats)

查找消费最高和最低的学生

max_consumer = df.loc[df[‘食堂消费’].idxmax(), ‘学生姓名’]
min_consumer = df.loc[df[‘食堂消费’].idxmin(), ‘学生姓名’]

print(“\n食堂消费最高的学生:”, max_consumer)
print(“食堂消费最低的学生:”, min_consumer)

计算消费数据的相关性

correlation = df.corr()

print(“\n消费数据的相关性:”)
print(correlation)

可视化消费数据

import matplotlib.pyplot as plt

设置绘图风格

plt.style.use(‘ggplot’)

绘制食堂消费和校园卡消费的散点图

plt.scatter(df[‘食堂消费’], df[‘校园卡消费’])
plt.title(‘食堂消费和校园卡消费关系’)
plt.xlabel(‘食堂消费’)
plt.ylabel(‘校园卡消费’)
plt.show()


这段代码继续计算了消费数据的相关性,并通过散点图展示了食堂消费和校园卡消费之间的关系。相关性分析可以帮助学校了解不同消费项目之间的关联程度,从而更好地制定消费政策和服务。散点图则直观地展示了食堂消费和校园卡消费之间的分布情况,有助于发现可能存在的规律或异常情况。


你可以根据实际数据的特点和需求进一步扩展分析,比如分析消费数据的时间趋势、不同年级学生的消费习惯等,以提供更全面的消费行为洞察。


![在这里插入图片描述](https://img-blog.csdnimg.cn/c023fea8ca7f435abb3cf379e21b0be7.jpg)


2. 扩展数据分析示例代码



假设有更多的消费数据,包括不同时间段的消费情况和不同年级学生的消费习惯

创建示例的扩展消费数据DataFrame

data_ext = {
‘学生姓名’: [‘张三’, ‘李四’, ‘王五’, ‘赵六’, ‘钱七’],
‘食堂消费’: [20.5, 15.2, 18.0, 25.5, 12.8],
‘校园卡消费’: [30.0, 25.5, 28.2, 35.5, 20.3],
‘消费时间’: [‘2024-03-10’, ‘2024-03-11’, ‘2024-03-10’, ‘2024-03-11’, ‘2024-03-10’],
‘年级’: [‘大一’, ‘大二’, ‘大一’, ‘大三’, ‘大二’]
}

df_ext = pd.DataFrame(data_ext)

分析不同年级学生的消费习惯

avg_consumption_by_grade = df_ext.groupby(‘年级’).mean()

print(“\n不同年级学生的平均消费情况:”)
print(avg_consumption_by_grade)

绘制不同年级学生的消费习惯条形图

plt.bar(avg_consumption_by_grade.index, avg_consumption_by_grade[‘食堂消费’], color=‘skyblue’, label=‘食堂消费’)
plt.bar(avg_consumption_by_grade.index, avg_consumption_by_grade[‘校园卡消费’], color=‘salmon’, label=‘校园卡消费’, alpha=0.7)
plt.xlabel(‘年级’)
plt.ylabel(‘平均消费’)
plt.title(‘不同年级学生的平均消费情况’)
plt.legend()
plt.show()

分析消费数据的时间趋势

daily_consumption = df_ext.groupby(‘消费时间’).sum()

print(“\n消费数据的时间趋势:”)
print(daily_consumption)

绘制消费数据的时间趋势折线图

daily_consumption.plot(kind=‘line’, marker=‘o’)
plt.title(‘消费数据的时间趋势’)
plt.xlabel(‘日期’)
plt.ylabel(‘消费总额’)
plt.show()


这段代码扩展了消费数据的分析,包括了不同年级大学生的平均消费情况和消费数据的时间趋势分析。通过分析不同年级大学生的消费习惯,学校可以更好地了解不同年级大学生的消费偏好,从而调整服务和政策以满足不同群体的需求。同时,时间趋势分析可以帮助学校发现消费数据的变化规律,为未来的决策提供参考依据。


你可以根据具体需求进一步扩展分析,比如探索不同性别学生的消费习惯、分析特定消费项目的流行度等,以获取更全面的消费行为洞察。  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/7a595be24b434c93accc2a0f1b6d9db9.jpg)


3. 进一步扩展数据分析示例代码



假设需要进一步扩展消费数据分析,包括性别、消费项目偏好等方面

创建示例的性别和消费项目偏好数据DataFrame

data_gender_preference = {
‘学生姓名’: [‘张三’, ‘李四’, ‘王五’, ‘赵六’, ‘钱七’],
‘性别’: [‘男’, ‘男’, ‘女’, ‘女’, ‘男’],
‘零食消费’: [8.5, 12.0, 10.2, 6.5, 9.8],
‘文具消费’: [5.0, 7.5, 6.8, 4.2, 6.0]
}

df_gender_preference = pd.DataFrame(data_gender_preference)

分析不同性别学生的消费项目偏好

avg_preference_by_gender = df_gender_preference.groupby(‘性别’).mean()

print(“\n不同性别学生的消费项目偏好:”)
print(avg_preference_by_gender)

绘制不同性别学生的消费项目偏好堆叠条形图

avg_preference_by_gender.plot(kind=‘bar’, stacked=True)
plt.title(‘不同性别学生的消费项目偏好’)
plt.xlabel(‘性别’)
plt.ylabel(‘平均消费’)
plt.show()

分析消费项目之间的相关性

correlation_preference = df_gender_preference[[‘零食消费’, ‘文具消费’]].corr()

print(“\n消费项目之间的相关性:”)
print(correlation_preference)


这段代码进一步扩展了消费数据分析,包括了不同性别学生的消费项目偏好分析和消费项目之间的相关性分析。通过分析不同性别学生对不同消费项目的偏好,学校可以更好地了解学生的消费需求,为商品采购和服务提供指导。同时,相关性分析可以帮助学校了解不同消费项目之间的关联程度,为制定综合消费策略提供参考。


你可以根据具体需求进一步扩展分析,比如探索不同专业学生的消费行为、分析不同校区学生的消费习惯等,以获取更全面的消费行为洞察,帮助学校更好地管理消费服务和优化学生体验。


![在这里插入图片描述](https://img-blog.csdnimg.cn/5e6f69a1f72748cca1f266efe14ed041.jpg#pic_center)


4. 大学生消费行为数据挖掘示例代码


以下是一个示例代码,用于进行大学生消费行为数据挖掘的分析,包括数据加载、数据清洗、数据探索性分析和可视化展示等步骤:



import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

加载大学生消费行为数据

假设数据文件为 ‘student_consumption_data.csv’,包括学生姓名、性别、年级、消费金额等字段

df = pd.read_csv(‘student_consumption_data.csv’)

数据清洗

检查缺失值

missing_values = df.isnull().sum()
print(“缺失值情况:”)
print(missing_values)

数据探索性分析

统计不同性别学生的消费总额

total_consumption_by_gender = df.groupby(‘性别’)[‘消费金额’].sum()

print(“\n不同性别学生的消费总额:”)
print(total_consumption_by_gender)

绘制不同性别学生的消费总额条形图

plt.figure(figsize=(8, 6))
sns.barplot(x=total_consumption_by_gender.index, y=total_consumption_by_gender.values)
plt.title(‘不同性别学生的消费总额’)
plt.xlabel(‘性别’)
plt.ylabel(‘消费总额’)
plt.show()

探索消费金额分布

plt.figure(figsize=(10, 6))
sns.histplot(df[‘消费金额’], bins=20, kde=True)
plt.title(‘消费金额分布’)
plt.xlabel(‘消费金额’)
plt.ylabel(‘频数’)
plt.show()

探索不同年级学生的消费情况

plt.figure(figsize=(10, 6))
sns.boxplot(x=‘年级’, y=‘消费金额’, data=df)
plt.title(‘不同年级学生的消费情况’)
plt.xlabel(‘年级’)
plt.ylabel(‘消费金额’)
plt.show()


这段示例代码展示了如何进行大学生消费行为数据的挖掘分析,包括数据加载、数据清洗、数据探索性分析和可视化展示。通过这些分析,学校可以更好地了解学生的消费习惯、消费偏好和消费行为。


![在这里插入图片描述](https://img-blog.csdnimg.cn/09d013a3e0a941af8c5a4e11afc7a3a6.jpg#pic_center)


5. 进一步扩展挖掘数据探索分析示例代码。


进一步扩展挖掘数据探索分析不同性别学生在不同消费项目上的平均消费。以下是示例代码:



进一步探索分析不同性别学生在不同消费项目上的平均消费

avg_consumption_by_gender = df.groupby(‘性别’).mean()

print(“\n不同性别学生在不同消费项目上的平均消费:”)
print(avg_consumption_by_gender)

绘制不同性别学生在不同消费项目上的平均消费堆叠条形图

plt.figure(figsize=(10, 6))
df.groupby(‘性别’).mean().plot(kind=‘bar’, stacked=True)
plt.title(‘不同性别学生在不同消费项目上的平均消费’)
plt.xlabel(‘性别’)
plt.ylabel(‘平均消费金额’)
plt.show()

探索不同年级学生在不同消费项目上的平均消费

avg_consumption_by_grade = df.groupby(‘年级’).mean()

print(“\n不同年级学生在不同消费项目上的平均消费:”)
print(avg_consumption_by_grade)

绘制不同年级学生在不同消费项目上的平均消费堆叠条形图

plt.figure(figsize=(12, 6))
df.groupby(‘年级’).mean().plot(kind=‘bar’, stacked=True)
plt.title(‘不同年级学生在不同消费项目上的平均消费’)
plt.xlabel(‘年级’)
plt.ylabel(‘平均消费金额’)
plt.show()


这段代码继续扩展了大学生消费行为数据挖掘的探索分析,包括了不同性别学生在不同消费项目上的平均消费分析和可视化展示,以及不同年级学生在不同消费项目上的平均消费分析和可视化展示。通过数据挖掘探索分析,学校可以更深入地了解不同群体学生的消费习惯和消费偏好,为提供更精准的消费服务和制定针对性的消费政策提供参考。


### 六、大学生社交网络数据分析数据挖掘示例代码


![在这里插入图片描述](https://img-blog.csdnimg.cn/eb49ed8000204242a4f0be52d0e9a81b.jpg)


1. 大学生社交网络数据分析示例代码


以下是一个示例代码,用于对大学生社交网络数据进行分析,探索大学生之间的社交关系和影响力较大的大学生:



import pandas as pd
import networkx as nx
import matplotlib.pyplot as plt

加载大学生社交网络数据

假设数据文件为 ‘student_social_network_data.csv’,包括学生姓名、关注的学生等字段

df = pd.read_csv(‘student_social_network_data.csv’)

创建有向图

G = nx.DiGraph()

添加边

for index, row in df.iterrows():
student = row[‘学生姓名’]
follows = row[‘关注的学生’].split(‘,’) # 假设关注的学生以逗号分隔
for follow in follows:
G.add_edge(student, follow)

绘制网络图

plt.figure(figsize=(12, 12))
pos = nx.spring_layout(G) # 定义节点位置
nx.draw(G, pos, with_labels=True, node_size=2000, node_color=‘skyblue’, font_size=10, font_color=‘black’, edge_color=‘gray’, linewidths=1, arrowsize=20)
plt.title(‘学生社交网络图’)
plt.show()

计算节点的度中心性

degree_centrality = nx.degree_centrality(G)

找出影响力较大的学生(度中心性排名靠前的学生)

sorted_degree_centrality = sorted(degree_centrality.items(), key=lambda x: x[1], reverse=True)

print(“\n影响力较大的学生(度中心性排名靠前的学生):”)
for student, centrality in sorted_degree_centrality[:5]:
print(f"{student}: {centrality}")


这段示例代码展示了如何利用Pandas和NetworkX库对学生社交网络数据进行分析,创建学生之间的社交网络图,并计算节点的度中心性来探索影响力较大的学生。通过这些分析,学校可以了解学生之间的社交关系,发现影响力较大的学生,为社交活动和学生关系管理提供参考。


![在这里插入图片描述](https://img-blog.csdnimg.cn/1cc68d6a4f354348894f0f48cdd9b855.jpg)


2. 大学生社交网络数据挖掘示例代码


以下是一个示例代码,用于对大学生社交网络数据进行挖掘分析:



import pandas as pd
import networkx as nx
import matplotlib.pyplot as plt

加载大学生社交网络数据

假设数据文件为 ‘undergraduate_social_network_data.csv’,包括学生姓名、好友列表等字段

df = pd.read_csv(‘undergraduate_social_network_data.csv’)

创建无向图

G = nx.Graph()

添加边

for index, row in df.iterrows():
student = row[‘学生姓名’]
friends = row[‘好友列表’].split(‘,’) # 假设好友列表以逗号分隔
for friend in friends:
G.add_edge(student, friend)

绘制网络图

plt.figure(figsize=(12, 12))
pos = nx.spring_layout(G) # 定义节点位置
nx.draw(G, pos, with_labels=True, node_size=2000, node_color=‘skyblue’, font_size=10, font_color=‘black’, edge_color=‘gray’, linewidths=1)
plt.title(‘大学生社交网络图’)
plt.show()

计算节点的介数中心性

betweenness_centrality = nx.betweenness_centrality(G)

找出影响力较大的学生(介数中心性排名靠前的学生)

sorted_betweenness_centrality = sorted(betweenness_centrality.items(), key=lambda x: x[1], reverse=True)

print(“\n影响力较大的学生(介数中心性排名靠前的学生):”)
for student, centrality in sorted_betweenness_centrality[:5]:
print(f"{student}: {centrality}")


这段示例代码展示了如何利用Pandas和NetworkX库对大学生社交网络数据进行挖掘分析,创建学生之间的社交网络图,并计算节点的介数中心性来探索影响力较大的学生。通过这些分析,学校可以了解学生之间的社交关系,发现在社交网络中具有重要影响力的学生,为社交活动和学生关系管理提供参考。


### 七、大学生考勤数据分析数据挖掘示例代码


![在这里插入图片描述](https://img-blog.csdnimg.cn/ea6b00652dc64b7d9e1bfc5f05060884.jpg)


1. 大学生考勤数据分析示例代码


以下是一个示例代码,用于分析大学生的考勤数据,了解大学生的出勤情况、迟到早退情况,帮助学校进行考勤管理和监督:



import pandas as pd

加载学生考勤数据

假设数据文件为 ‘student_attendance_data.csv’,包括学生姓名、考勤日期、出勤状态(出勤、迟到、早退等)等字段

df = pd.read_csv(‘student_attendance_data.csv’)

统计每位学生的出勤情况

attendance_summary = df.groupby(‘学生姓名’)[‘出勤状态’].value_counts().unstack().fillna(0)

计算迟到和早退次数

attendance_summary[‘迟到次数’] = attendance_summary[‘迟到’] + attendance_summary[‘迟到早退’]
attendance_summary[‘早退次数’] = attendance_summary[‘早退’] + attendance_summary[‘迟到早退’]

输出每位学生的出勤情况统计

print(“学生出勤情况统计:”)
print(attendance_summary)

统计全校迟到和早退情况

total_late_count = attendance_summary[‘迟到次数’].sum()
total_early_leave_count = attendance_summary[‘早退次数’].sum()

print(“\n全校迟到次数:”, total_late_count)
print(“全校早退次数:”, total_early_leave_count)

可视化学生出勤情况

attendance_summary.plot(kind=‘bar’, stacked=True, figsize=(12, 6), colormap=‘Paired’)
plt.title(‘学生出勤情况统计’)
plt.xlabel(‘学生姓名’)
plt.ylabel(‘出勤次数’)
plt.legend(title=‘出勤状态’)
plt.show()

分析迟到次数与早退次数的相关性

correlation = attendance_summary[‘迟到次数’].corr(attendance_summary[‘早退次数’])
print(“\n迟到次数与早退次数的相关性:”, correlation)


这段代码继续完善了大学生考勤数据的分析,包括统计每位大学生的出勤情况、计算迟到和早退次数,输出全校迟到和早退情况统计,绘制大学生出勤情况的可视化图表,并分析迟到次数与早退次数的相关性。通过这些分析,学校可以更好地了解大学生的考勤情况,发现问题并及时进行管理和监督。


![在这里插入图片描述](https://img-blog.csdnimg.cn/1f08ea25417c482cbcad254c6648cef2.jpg)


2. 大学生考勤数据挖掘示例代码


以下是一个示例代码,用于进行大学生考勤数据挖掘,发现潜在的规律和趋势:



import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

加载学生考勤数据

df = pd.read_csv(‘student_attendance_data.csv’)

将考勤日期转换为日期时间类型

df[‘考勤日期’] = pd.to_datetime(df[‘考勤日期’])

提取考勤日期中的年份和月份信息

df[‘年份’] = df[‘考勤日期’].dt.year
df[‘月份’] = df[‘考勤日期’].dt.month

统计每个月的迟到次数和早退次数

monthly_attendance = df.groupby([‘年份’, ‘月份’])[‘出勤状态’].value_counts().unstack().fillna(0)
monthly_attendance[‘迟到次数’] = monthly_attendance[‘迟到’] + monthly_attendance[‘迟到早退’]
monthly_attendance[‘早退次数’] = monthly_attendance[‘早退’] + monthly_attendance[‘迟到早退’]

绘制每个月的迟到次数和早退次数趋势图

plt.figure(figsize=(12, 6))
sns.lineplot(data=monthly_attendance, x=‘月份’, y=‘迟到次数’, hue=‘年份’, marker=‘o’, palette=‘Set1’)
plt.title(‘每月迟到次数趋势’)
plt.xlabel(‘月份’)
plt.ylabel(‘迟到次数’)
plt.legend(title=‘年份’)
plt.show()

plt.figure(figsize=(12, 6))
sns.lineplot(data=monthly_attendance, x=‘月份’, y=‘早退次数’, hue=‘年份’, marker=‘o’, palette=‘Set2’)
plt.title(‘每月早退次数趋势’)
plt.xlabel(‘月份’)
plt.ylabel(‘早退次数’)
plt.legend(title=‘年份’)
plt.show()

分析不同年级学生的考勤情况

grade_attendance = df.groupby(‘年级’)[‘出勤状态’].value_counts().unstack().fillna(0)
grade_attendance[‘迟到次数’] = grade_attendance[‘迟到’] + grade_attendance[‘迟到早退’]
grade_attendance[‘早退次数’] = grade_attendance[‘早退’] + grade_attendance[‘迟到早退’]

绘制不同年级学生的迟到次数和早退次数柱状图

plt.figure(figsize=(12, 6))
grade_attendance[[‘迟到次数’, ‘早退次数’]].plot(kind=‘bar’, stacked=True, colormap=‘Paired’)
plt.title(‘不同年级学生的迟到次数和早退次数’)
plt.xlabel(‘年级’)
plt.ylabel(‘次数’)
plt.legend(title=‘出勤状态’)
plt.show()


这段代码继续完善了大学生考勤数据的挖掘分析,包括绘制每月迟到次数和早退次数的趋势图,分析不同年级大学生的考勤情况并绘制柱状图展示迟到次数和早退次数。通过这些分析,学校可以更全面地了解大学生的考勤情况,发现规律和趋势,为考勤管理提供数据支持和决策参考。


### 八、大学生健康数据分析数据挖掘示例代码


![在这里插入图片描述](https://img-blog.csdnimg.cn/63b5c4bade8e497a86aa91becdd1808c.jpg)


1. 大学生健康数据分析示例代码


以下是一个示例代码,用于利用 Pandas 对大学生的健康数据进行分析,包括体重、身高、运动习惯等信息,帮助学校关注大学生的健康状况:



import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

加载学生健康数据

df = pd.read_csv(‘student_health_data.csv’)

查看数据的基本信息

print(df.head())
print(df.describe())

绘制学生体重和身高的散点图

plt.figure(figsize=(10, 6))
sns.scatterplot(x=‘体重’, y=‘身高’, data=df, hue=‘性别’, style=‘运动习惯’)
plt.title(‘学生体重和身高分布’)
plt.xlabel(‘体重(kg)’)
plt.ylabel(‘身高(cm)’)
plt.legend(title=‘性别’)
plt.show()

分析不同性别学生的体重分布

plt.figure(figsize=(8, 6))
sns.histplot(data=df, x=‘体重’, hue=‘性别’, kde=True, bins=10)
plt.title(‘不同性别学生的体重分布’)
plt.xlabel(‘体重(kg)’)
plt.ylabel(‘频数’)

img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化资料的朋友,可以戳这里获取

import seaborn as sns

加载学生健康数据

df = pd.read_csv(‘student_health_data.csv’)

查看数据的基本信息

print(df.head())
print(df.describe())

绘制学生体重和身高的散点图

plt.figure(figsize=(10, 6))
sns.scatterplot(x=‘体重’, y=‘身高’, data=df, hue=‘性别’, style=‘运动习惯’)
plt.title(‘学生体重和身高分布’)
plt.xlabel(‘体重(kg)’)
plt.ylabel(‘身高(cm)’)
plt.legend(title=‘性别’)
plt.show()

分析不同性别学生的体重分布

plt.figure(figsize=(8, 6))
sns.histplot(data=df, x=‘体重’, hue=‘性别’, kde=True, bins=10)
plt.title(‘不同性别学生的体重分布’)
plt.xlabel(‘体重(kg)’)
plt.ylabel(‘频数’)

[外链图片转存中…(img-AmLPNQw8-1715518236489)]
[外链图片转存中…(img-nfXtESai-1715518236489)]
[外链图片转存中…(img-VFx2ffdN-1715518236490)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化资料的朋友,可以戳这里获取

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值