我可以使用
从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对象的标头,以便可以将其移动并在其他地方使用。
答案 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 中有各种玩具数据集,例如 Iris 和 Boston 数据集。让我们加载 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'])
这里我们对 data、feature_names 和 target 键感兴趣。我们将导入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)