python数据分析第一天

本文介绍了如何使用Python的notebook进行数据处理,包括计算平均分、方差,以及利用numpy和pandas进行高级运算。涵盖了安装、导入库、数据结构转换和统计分析等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

认识notebook

# 获取帮助
? range
# 获取当前目录
%pwd

实例

def average(scores: list):
    """均值"""
    return sum(scores) / len(scores)


def variance(scores: list):
    """总体方差"""
    mean_value = average(scores)
    return sum([(score - mean_value) ** 2 for score in scores]) / len(scores)


import random

names = ('妲己', '狄仁杰', '达摩', '孙尚香', '吕布')
courses = ('语文', '数学', '英语')
scores = [[random.randrange(60, 101) for _ in range(3)] for _ in range(5)]

# 计算每个学生的平均分
for i, name in enumerate(names):
    print(f'{name}平均分: {average(scores[i]):.1f}')
   

# 统计每门课的最高分、最低分、方差
for i, course in enumerate(courses):
    temp_scores = [scores[j][i] for j in range(5)]
    print(f'{course}的最高分: {max(temp_scores)}')
    print(f'{course}的最低分: {min(temp_scores)}')
    print(f'{course}成绩的方差: {variance(temp_scores):.2f}')

初识三大神器

安装

!pip install numpy pandas matplotlib

导入

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

# 设置字体不然中文无法显示
plt.rcParams['font.sans-serif'] = 'SimHei'
plt.rcParams['axes.unicode_minus'] = False

scores = [[75, 97, 75], [78, 88, 94], [86, 100, 74], [77, 100, 66], [86, 83, 71]]

# 创建ndarray对象
scores = np.array(scores)
scores

# 计算每个学生的平均分(沿着1轴求平均)
np.round(scores.mean(axis=1), 1)

# 统计每门课的最高分(沿着0轴找最大)
scores.max(axis=0)

# 统计每门课的最高分(沿着0轴找最小)
scores.min(axis=0)

# 统计每门课成绩的方差(沿着0轴求方差)
scores.var(axis=0)

# 创建DataFrame对象
names = ('妲己', '狄仁杰', '达摩', '孙尚香', '吕布')
courses = ('语文', '数学', '英语')
df = pd.DataFrame(data=scores, columns=courses, index=names)

# 添加一个列沿着1轴求平均计算了每个人的平均分
# 如果要求每门课程的平均分就要沿着0轴求平均并且要用添加行的操作
df['平均分'] = np.round(df.mean(axis=1), 1)

# 生成柱状图 kind='bar'柱状图'line'折线图'pie'饼图
df.plot(kind='bar', y=['语文', '数学', '英语'])
plt.xticks(rotation=0)
plt.show()

# 添加一个行
df.loc['方差'] = df.var(axis=0)
df

# 安装操作Excel的库!pip install openpyxl
# 将DataFrame输出到Excel文件
df.to_excel('成绩表.xlsx')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

azured_xu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值