假设文件data1.csv中的B、C、D和E列数据分别是日期、权重、A企业的销售额、B企业的销售额。读取C、D、E列数据,并统计E列数据的算术平均数、加权平均值(权值为C列数据)、方差、中位数、最小值、最大值。并绘制E列数据的直方图。(写出程序源码,
时间: 2023-07-10 13:26:40 浏览: 120
好的,以下是Python的代码实现:
```python
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
# 读取数据
df = pd.read_csv("data1.csv", usecols=[2, 3, 4])
# 计算平均数
mean = np.mean(df["销售额"])
# 计算加权平均值
weighted_mean = np.average(df["销售额"], weights=df["权重"])
# 计算方差
variance = np.var(df["销售额"])
# 计算中位数
median = np.median(df["销售额"])
# 计算最小值
min_value = np.min(df["销售额"])
# 计算最大值
max_value = np.max(df["销售额"])
# 绘制直方图
plt.hist(df["销售额"], bins=10)
plt.xlabel("销售额")
plt.ylabel("频数")
plt.title("销售额直方图")
plt.show()
```
其中,`usecols`参数用于指定读取哪些列的数据。在本例中,我们只需要读取第3、4、5列的数据,因此将其指定为`[2, 3, 4]`。`np.mean`、`np.average`、`np.var`和`np.median`分别用于计算平均数、加权平均值、方差和中位数。`np.min`和`np.max`则用于计算最小值和最大值。最后,使用`plt.hist`函数绘制直方图,其中`bins`参数指定直方图的柱子数量。
阅读全文