如何将scikit学习数据集写入CSV文件

时间:2019-03-25 21:15:27

标签: python pandas scikit-learn

我可以使用

scikit-learn加载数据集
from sklearn import datasets
data = datasets.load_boston()
print(data)

我想做的就是将此数据集写入平面文件(.csv

使用open()函数,

f = open('boston.txt', 'w')
f.write(str(data))

有效,但包含数据集的描述。

我想知道是否可以通过某种方式生成一个简单的.csv,其中包含来自此Bunch对象的标头,以便可以将其移动并在其他地方使用。

3 个答案:

答案 0 :(得分:1)

data = datasets.load_boston()将生成一个字典。为了将数据写入.csv文件,您需要实际数据data['data']和列data['feature_names']。您可以使用这些命令来生成熊猫数据框,然后使用to_csv()以便将数据写入文件:

from sklearn import datasets
import pandas as pd 

data = datasets.load_boston()
print(data)

df = pd.DataFrame(data=data['data'], columns = data['feature_names'])
df.to_csv('boston.txt', sep = ',', index = False)

并且输出boston.txt应该是:

CRIM,ZN,INDUS,CHAS,NOX,RM,AGE,DIS,RAD,TAX,PTRATIO,B,LSTAT
0.00632,18.0,2.31,0.0,0.538,6.575,65.2,4.09,1.0,296.0,15.3,396.9,4.98
0.02731,0.0,7.07,0.0,0.469,6.421,78.9,4.9671,2.0,242.0,17.8,396.9,9.14
0.02729,0.0,7.07,0.0,0.469,7.185,61.1,4.9671,2.0,242.0,17.8,392.83,4.03
...

答案 1 :(得分:1)

scikit-learn 中有各种玩具数据集,例如 IrisBoston 数据集。让我们加载 Boston 数据集:

from sklearn import datasets
boston = datasets.load_boston()

这是什么类型的物体?如果我们检查它的类型,我们会发现这是一个 scikit-learn Bunch 对象。

print(type(boston))

输出:

<class 'sklearn.utils.Bunch'>

scikit-learn Bunch 对象是一种字典。所以,我们应该这样对待它。我们可以使用字典方法。让我们看看关键:

print(boston.keys())

输出:

dict_keys(['data', 'target', 'feature_names', 'DESCR', 'filename'])

这里我们对 datafeature_namestarget 键感兴趣。我们将导入pandas 模块并使用这些键创建一个pandas DataFrame

import pandas as pd
df = pd.DataFrame(data=boston['data'], columns=boston['feature_names'])

我们还应该将目标变量添加到 DataFrame。目标变量是我们试图预测的变量。我们应该学习目标变量的名称。它写在“DESCR”中。我们可以 print(boston["DESCR"]) 并阅读数据集的完整说明。

在描述中我们看到目标变量的名称是MEDV。现在,我们可以将目标变量添加到 DataFrame 中:

df['MEDV'] = boston['target']

只剩下一步了。我们将 DataFrame 导出到一个没有索引号的 csv 文件:

df.to_csv("scikit_learn_boston_dataset.csv", index=False)

奖励Iris 数据集具有我们可以利用的其他参数 (look at here)。以下代码自动创建包含目标变量的 DataFrame:

iris = datasets.load_iris(as_frame=True)
df = iris["frame"]

注意:如果我们print(iris.keys()),我们可以看到'frame'键:

dict_keys(['data', 'target', 'frame', 'target_names', 'DESCR', 'feature_names', 'filename'])

BONUS2:如果我们 print(boston["filename"])print(iris["filename"]),我们可以看到这些数据集的 csv 文件的物理位置。例如:

C:\Users\user\anaconda3\lib\site-packages\sklearn\datasets\data\boston_house_prices.csv

答案 2 :(得分:0)

只想通过添加您也应该包括目标变量“ MV”来修改答复。在下面添加了一行:

from sklearn import datasets
import pandas as pd 

data = datasets.load_boston()
print(data)

df = pd.DataFrame(data=data['data'], columns = data['feature_names'])

**df['MV'] = data['target']**

df.to_csv('boston.txt', sep = ',', index = False)