python实验十

专栏python共10次python实验,可去主页python专栏查看

1.datal.csv中的B、C、D和E列数据分别是日期、权重、A企业的销售额、B企业的销售额。读取C、D、E列数据,并统计E列数据的算术平均数、加权平均值(权值为C列数据)、方差、中位数、最小值、最大值。并绘制E列数据的直方图。

import numpy as np
import matplotlib.pyplot as plt

# 读取CSV文件
data = pd.read_csv('data1.csv')

# 获取第三列、第五列数据
third_column = data.iloc[:, 2]
fifth_column = data.iloc[:, 4]

# 计算第五列数据的算数平均值
mean_value = fifth_column.mean()

# 计算第五列数据的加权平均值
weighted_mean = np.average(fifth_column, weights=third_column)

# 计算第五列数据的方差
variance = fifth_column.var()

# 计算第五列数据的中位数
median_value = fifth_column.median()

# 计算第五列数据的最小值
min_value = fifth_column.min()

# 计算第五列数据的最大值
max_value = fifth_column.max()

# 绘制第五列数据的直方图
plt.hist(fifth_column, bins=10, color='skyblue', edgecolor='black')
plt.xlabel('销售额')
plt.ylabel('频数')
plt.title('销售额直方图')
plt.show()

# 打印统计结果
print(f'算术平均数: {mean_value}')
print(f'加权平均值: {weighted_mean}')
print(f'方差: {variance}')
print(f'中位数: {median_value}')
print(f'最小值: {min_value}')
print(f'最大值: {max_value}')

 

  1. 读取data1.csv文件中的A企业销售额与B企业销售额数据,并计算这些企业数据的协方差矩阵和相关系数矩阵

 

import pandas as pd

# 读取CSV文件
data = pd.read_csv('data1.csv')

# 选择第四列和第五列数据
selected_data = data.iloc[:, 3:5]

# 计算协方差矩阵
covariance_matrix = selected_data.cov()

# 计算相关系数矩阵
correlation_matrix = selected_data.corr()

print('协方差矩阵:')
print(covariance_matrix)

print('\n相关系数矩阵:')
print(correlation_matrix)

  1. 读取 datal.csv文件中A、B、C、D、E,绘制由A列和D列数据关联,以及由A列和E列数据(请将该列值除以120后绘图)关联的两条折线图,并分别赋以不同的颜色和线型,添加图例。

 

import pandas as pd
import matplotlib.pyplot as plt

# 读取CSV文件
data = pd.read_csv('data1.csv')

# 选择第一列、第四列和第五列(除以120)的数据
first_column = data.iloc[:, 0]
fourth_column = data.iloc[:, 3]
fifth_column = data.iloc[:, 4] / 120

# 绘制折线图
plt.plot(first_column, fourth_column, color='blue', linestyle='-', label='第一列和第四列关联')
plt.plot(first_column, fifth_column, color='green', linestyle='--', label='第一列和第五列(除以120)关联')

# 添加图例
plt.legend()

plt.xlabel('X轴数据')
plt.ylabel('Y轴数据')
plt.title('折线图')
plt.show()

4.设计一个Timer类,该类包括:表示小时,分,秒的三个数据域,三个数据域各自的get方法,设置新时间和显示时间的方法。 用当前时间创建一个Timer类并显示出来。 

import datetime
class Timer:
    def __init__(self, hour, minute, second):
        self.hour = hour
        self.minute = minute
        self.second = second
    def gethour(self):
        return self.hour
    def getminute(self):
        return self.minute
    def getsecond(self):
        return self.second
    def settime(self, new_hour, new_minute, new_second):
        self.hour = new_hour
        self.minute = new_minute
        self.second = new_second
    def showtime(self):
        print(self.hour, ":", self.minute, ":", self.second)

# 主程序
d = datetime.datetime.now()
timer1 = Timer(d.hour, d.minute, d.second)
timer1.showtime()

  1. 针对 data1.csv中A企业的销售额,使用简单移动平均方法估计各月的销售额。移动平均间隔为3,即用1、2、3三周的数据预测第4周的数据。
import pandas as pd

# 读取CSV文件
data = pd.read_csv('data1.csv')

# 选择第四列数据
sales_data = data.iloc[:, 3]

# 使用简单移动平均方法计算各月的销售额
moving_average = sales_data.rolling(window=3).mean()

# 打印移动平均结果
print(moving_average)

 

 

  1. 使用指数移动平均方法估计上题的A企业的销售额。移动平均间隔为3。并请添加图、坐标轴标题和图例
import pandas as pd
import matplotlib.pyplot as plt

# 读取CSV文件
data = pd.read_csv('data1.csv')

# 选择第四列数据
sales_data = data.iloc[:, 3]

# 使用简单移动平均方法计算各月的销售额
moving_average = sales_data.rolling(window=3).mean()

# 绘制图表
plt.figure(figsize=(10, 6))
plt.plot(sales_data, label='每周销售额')
plt.plot(moving_average, label='移动平均销售额', color='red', linestyle='--')

# 添加标题和标签
plt.title('销售额及移动平均')
plt.xlabel('周数')
plt.ylabel('销售额')
plt.legend()

plt.show()

 

二、实验总结:(写收获与存在的问题)

Python数据分析与可视化是一个强大且广泛应用的领域,它结合了数据处理、统计分析、数据建模以及数据可视化等多个方面。以下是基于Python数据分析与可视化基础的一些学习心得:

1. 数据分析库的重要性

NumPy:提供了强大的数组和矩阵运算功能,是数据分析的基础。

Pandas:提供了数据清洗、数据整合、数据变换等一系列数据处理功能,极大地简化了数据分析的流程。

2. 数据清洗

数据清洗是数据分析的第一步,也是非常重要的一步。它涉及到缺失值处理、异常值处理、重复值处理等多个方面。

Pandas库提供了许多方便的数据清洗方法,如dropna(), fillna(), duplicated(), replace()等。

3. 数据可视化

数据可视化可以将数据以更直观的方式展现出来,帮助人们更好地理解数据。

Matplotlib:是最基础的Python可视化库,提供了丰富的图表类型。

Seaborn:基于Matplotlib的更高层次的数据可视化库,提供了更美观的默认样式和更方便的API。

Plotly 和 Bokeh:提供了交互式可视化功能,用户可以与图表进行交互。

4. 统计分析与数据建模

数据分析不仅仅是对数据进行简单的清洗和可视化,还需要对数据进行深入的统计分析,甚至建立数据模型。

SciPy:提供了丰富的统计学和数学函数,包括线性代数、积分、插值、特殊函数、快速傅里叶变换、信号处理、优化以及统计等。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值