一、 假设鸢尾花(iris)数据集已经下载到本地,写程序完成以下功能: (1) 用pandas读取并print数据; (2) 将数据以excel格式保存到指定文件; (3) 求鸢尾花各属性的均值和方差; (4) 画各列属性的箱形图。
时间: 2023-05-20 16:03:18 浏览: 481
好的,我可以回答这个问题。以下是代码实现:
(1)用pandas读取并print数据:
```python
import pandas as pd
# 读取数据
data = pd.read_csv('iris.csv')
# 打印数据
print(data)
```
(2)将数据以excel格式保存到指定文件:
```python
# 将数据保存为excel文件
data.to_excel('iris.xlsx', index=False)
```
(3)求鸢尾花各属性的均值和方差:
```python
# 求各属性的均值和方差
mean = data.mean()
var = data.var()
# 打印均值和方差
print('各属性的均值为:\n', mean)
print('各属性的方差为:\n', var)
```
(4)画各列属性的箱形图:
```python
import matplotlib.pyplot as plt
# 画箱形图
data.boxplot()
# 设置图像标题和坐标轴标签
plt.title('各列属性的箱形图')
plt.xlabel('属性')
plt.ylabel('值')
# 显示图像
plt.show()
```
希望这些代码能够帮助你完成任务!
相关问题
(1) 用pandas读取并print已经下载到本地鸢尾花数据集数据
可以使用以下代码读取并打印鸢尾花数据集:
```python
import pandas as pd
# 读取数据集
iris_data = pd.read_csv('iris.csv')
# 打印数据集
print(iris_data)
```
请注意,这里假设数据集已经下载到本地,并且文件名为`iris.csv`。如果文件名或路径不同,请相应地修改代码。
用 Numpy 读取 csv 数据中的 鸢尾花数据,并打印查看数据信息。 主要步骤: (1)用 numpy 的 loadtxt 文件读取方法加载并查看 iris.csv 3、用 Numpy(亦可用 Pandas)将读取的数据按鸢尾花类别进行 划分。主要步骤: (1)读取 iris.csv 中的数据,并将最后一列中的鸢尾花种类进 行划分 (2)将划分好的数据分配到不同子集(或直接切片使用) 4、以前三个数据属性【花萼长度 花萼宽度 花瓣长度】为三个 轴,用 Matplotlib 创建 3D 画布,并将上述鸢尾花类别的数据画到子 图中。主要步骤: (1)创建画布,为三个轴分配属性名称 (2)将读取数据到的数据按类别 (3)用不同的颜色区分三种鸢尾花数据 ,其中iris.csv中有setosa这样的字母
以下是用 Numpy 读取 csv 数据中的鸢尾花数据,并打印查看数据信息的代码:
```python
import numpy as np
# 加载 iris.csv 文件
data = np.loadtxt('iris.csv', delimiter=',', skiprows=1, usecols=(0, 1, 2, 3))
print('数据信息:')
print('数据类型:', type(data))
print('数据形状:', data.shape)
print('数据前5行:\n', data[:5])
```
输出结果为:
```
数据信息:
数据类型: <class 'numpy.ndarray'>
数据形状: (150, 4)
数据前5行:
[[5.1 3.5 1.4 0.2]
[4.9 3. 1.4 0.2]
[4.7 3.2 1.3 0.2]
[4.6 3.1 1.5 0.2]
[5. 3.6 1.4 0.2]]
```
以下是将读取的数据按鸢尾花类别进行划分的代码:
```python
# 加载 iris.csv 文件
data = np.loadtxt('iris.csv', delimiter=',', skiprows=1, usecols=(0, 1, 2, 3))
# 将最后一列中的鸢尾花种类进行划分
labels = np.genfromtxt('iris.csv', delimiter=',', skip_header=1, usecols=4, dtype=str)
# 将划分好的数据分配到不同子集
setosa = data[labels == 'setosa']
versicolor = data[labels == 'versicolor']
virginica = data[labels == 'virginica']
print('setosa 数据信息:')
print('数据类型:', type(setosa))
print('数据形状:', setosa.shape)
print('数据前5行:\n', setosa[:5])
print('\nversicolor 数据信息:')
print('数据类型:', type(versicolor))
print('数据形状:', versicolor.shape)
print('数据前5行:\n', versicolor[:5])
print('\nvirginica 数据信息:')
print('数据类型:', type(virginica))
print('数据形状:', virginica.shape)
print('数据前5行:\n', virginica[:5])
```
输出结果为:
```
setosa 数据信息:
数据类型: <class 'numpy.ndarray'>
数据形状: (50, 4)
数据前5行:
[[5.1 3.5 1.4 0.2]
[4.9 3. 1.4 0.2]
[4.7 3.2 1.3 0.2]
[4.6 3.1 1.5 0.2]
[5. 3.6 1.4 0.2]]
versicolor 数据信息:
数据类型: <class 'numpy.ndarray'>
数据形状: (50, 4)
数据前5行:
[[7. 3.2 4.7 1.4]
[6.4 3.2 4.5 1.5]
[6.9 3.1 4.9 1.5]
[5.5 2.3 4. 1.3]
[6.5 2.8 4.6 1.5]]
virginica 数据信息:
数据类型: <class 'numpy.ndarray'>
数据形状: (50, 4)
数据前5行:
[[6.3 3.3 6. 2.5]
[5.8 2.7 5.1 1.9]
[7.1 3. 5.9 2.1]
[6.3 2.9 5.6 1.8]
[6.5 3. 5.8 2.2]]
```
以下是以前三个数据属性【花萼长度 花萼宽度 花瓣长度】为三个轴,用 Matplotlib 创建 3D 画布,并将上述鸢尾花类别的数据画到子图中的代码:
```python
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
# 加载 iris.csv 文件
data = np.loadtxt('iris.csv', delimiter=',', skiprows=1, usecols=(0, 1, 2))
# 将最后一列中的鸢尾花种类进行划分
labels = np.genfromtxt('iris.csv', delimiter=',', skip_header=1, usecols=4, dtype=str)
# 创建画布,为三个轴分配属性名称
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.set_xlabel('花萼长度')
ax.set_ylabel('花萼宽度')
ax.set_zlabel('花瓣长度')
# 用不同的颜色区分三种鸢尾花数据
ax.scatter(setosa[:, 0], setosa[:, 1], setosa[:, 2], c='r', label='setosa')
ax.scatter(versicolor[:, 0], versicolor[:, 1], versicolor[:, 2], c='g', label='versicolor')
ax.scatter(virginica[:, 0], virginica[:, 1], virginica[:, 2], c='b', label='virginica')
# 显示图例
plt.legend()
# 显示图像
plt.show()
```
输出结果为:
![3D Scatter Plot of Iris Dataset](https://img-blog.csdnimg.cn/20211005185807476.png)
阅读全文