首页 > 解决方案 > 关于不使用 Pandas 打印某些行的问题

问题描述

我想打印出 sklearn.datasets.load_diabetes 的前 5 行数据。我试过了head()iloc但似乎没有效果。我应该怎么办?

这是我的工作

# 1. Import dataset about diabetes from the sklearn package: from sklearn import
from sklearn import datasets

# 2. Load the data (use .load_diabetes() function )
df = datasets.load_diabetes()
df

# 3. Print out feature names and target names

# Features Names
x = df.feature_names
x

# Target Names 
y = df.target
y

# 4. Print out the first 5 rows of the data
df.head(5)

错误:

---------------------------------------------------------------------------
KeyError                                  Traceback (most recent call last)
/usr/local/lib/python3.7/dist-packages/sklearn/utils/__init__.py in __getattr__(self, key)
    113         try:
--> 114             return self[key]
    115         except KeyError:

KeyError: 'head'

During handling of the above exception, another exception occurred:

AttributeError                            Traceback (most recent call last)
1 frames
/usr/local/lib/python3.7/dist-packages/sklearn/utils/__init__.py in __getattr__(self, key)
    114             return self[key]
    115         except KeyError:
--> 116             raise AttributeError(key)
    117 
    118     def __setstate__(self, state):

AttributeError: head

标签: pythonscikit-learn

解决方案


根据文档,load_diabetes()默认情况下它不会返回 Pandas 数据框,所以难怪它不起作用。

你显然可以做

df = datasets.load_diabetes(as_frame=True).data

如果你想要一个数据框。

如果您不想要数据框,则需要阅读 Numpy 数组切片的工作原理,因为这是您默认获得的。


推荐阅读