分别加载鸢尾花数据集文件,iris.csv、iris.data (1)输出数据集前5行和后5行 (2)输出数据的样本集和目标集(目标集输出两种:一是原始的目标集,一种是转为分类号0,1,2后的目标集) (3)输出花萼的长度和花瓣的长度这两个特征列
时间: 2024-09-06 20:02:30 浏览: 40
要完成这个任务,通常我们会使用Python中的数据处理库,如pandas。以下是完成您要求的步骤的示例代码。在运行此代码之前,确保已经安装了pandas库。
```python
import pandas as pd
# 加载鸢尾花数据集
df_iris = pd.read_csv('iris.csv') # 假设iris.csv文件路径已正确设置
df_iris_data = pd.read_csv('iris.data', header=None) # iris.data文件没有头部,所以使用header=None参数
# (1) 输出数据集前5行和后5行
print("iris.csv前5行:")
print(df_iris.head())
print("iris.csv后5行:")
print(df_iris.tail())
print("iris.data前5行:")
print(df_iris_data.head())
print("iris.data后5行:")
print(df_iris_data.tail())
# (2) 输出数据的样本集和目标集
# iris.csv中的目标集位于最后一列
y_iris_csv = df_iris.iloc[:, -1]
print("iris.csv目标集(原始):")
print(y_iris_csv)
# 转换为目标集(分类号0,1,2)
y_iris_csv_encoded = df_iris.iloc[:, -1].map({'Iris-setosa': 0, 'Iris-versicolor': 1, 'Iris-virginica': 2})
print("iris.csv目标集(转为分类号):")
print(y_iris_csv_encoded)
# iris.data中的目标集在最后一列,需要手动添加列名
df_iris_data.columns = ['sepal_length', 'sepal_width', 'petal_length', 'petal_width', 'class']
y_iris_data = df_iris_data.iloc[:, -1]
print("iris.data目标集(原始):")
print(y_iris_data)
# 转换为目标集(分类号0,1,2)
y_iris_data_encoded = y_iris_data.map({'Iris-setosa': 0, 'Iris-versicolor': 1, 'Iris-virginica': 2})
print("iris.data目标集(转为分类号):")
print(y_iris_data_encoded)
# (3) 输出花萼的长度和花瓣的长度这两个特征列
# iris.csv中的相关列分别是第二和第四列
iris_csv_features = df_iris.iloc[:, [1, 3]]
print("iris.csv的花萼长度和花瓣长度特征列:")
print(iris_csv_features)
# iris.data中的相关列分别是第一和第三列,且需要先添加列名
df_iris_data.columns = ['sepal_length', 'sepal_width', 'petal_length', 'petal_width', 'class']
iris_data_features = df_iris_data.iloc[:, [0, 2]]
print("iris.data的花萼长度和花瓣长度特征列:")
print(iris_data_features)
```
注意:这段代码假设文件路径正确,并且csv文件中没有特殊格式需要解析。实际使用时,可能需要根据您的文件具体格式和数据结构进行适当调整。