python - ValueError:DataFrame 构造函数在尝试从管道调用数据时未正确调用错误
问题描述
我试图在使用 StandardScaler 使用 seaborn 之前和之后可视化 iris 数据集但是我在尝试定义 DataFrame 时出错
我发现了很多类似的问题,但没有一个解释如何将管道数据转换为 DataFrame
X = DATA.drop(['class'], axis = 'columns')
y = DATA['class'].values
X_train, X_test, y_train, y_test=train_test_split(X,y, test_size=0.20,random_state =42)
gbl_pl=[]
gbl_pl.append(('standard_scaler_gb',
StandardScaler()))
print(gbl_pl)
gblpq=Pipeline((gbl_pl))
scaled_df=gblpq.fit(X_train,y_train)
print(scaled_df.named_steps['standard_scaler_gb'].mean_)
scaled_df =pd.DataFrame(scaled_df,
columns=['petal_length', 'petal_width',
'sepal_length','sepal_width'])
fig, (ax1, ax2) = plt.subplots(ncols=2, figsize=(6, 5))
ax1.set_title('Before Scaling')
sns.kdeplot(X['petal_length'], ax=ax1)
sns.kdeplot(X['petal_width'], ax=ax1)
sns.kdeplot(X['sepal_length'], ax=ax1)
sns.kdeplot(X['sepal_width'], ax=ax1)
ax2.set_title('After Standard Scaler')
sns.kdeplot(scaled_df['petal_length'], ax=ax2)
sns.kdeplot(scaled_df['petal_width'], ax=ax2)
sns.kdeplot(scaled_df['sepal_length'], ax=ax2)
sns.kdeplot(scaled_df['sepal_width'], ax=ax2)
plt.savefig("output73.png")
错误
columns=['petal_length', 'petal_width',
File "/data/user/0/ru.iiec.pydroid3/files/aarch64-linux-android/lib/python3.8/site-packages/pandas/core/frame.py", line 509, in __init__
raise ValueError("DataFrame constructor not properly called!")
ValueError: DataFrame constructor not properly called!
解决方案
您正在将转换器 (StandardScaler
和Pipeline
) 与数据混为一谈。你的返回值gblpq.fit(X_train y_train)
是一个管道对象,而不是数据。要获取缩放数据,您可以使用管道的transform
方法(或方便组合fit_transform
)。
...
scaled_df = gblpq.fit_transform(X_train, y_train)
# gblpq is now fitted and contains learned statistics like the means:
print(gblpq.named_steps['standard_scaler_gb'].mean_)
# while scaled_df contains the transformed data as a numpy array
scaled_df = pd.DataFrame(
scaled_df,
columns = [petal_length', petal_width', 'sepal_length', 'sepal_width']
)
...
推荐阅读
- video - 使用mpeg2video的FFmpeg黑屏
- javascript - 在模板中显示对象,就像在 devtools 控制台中一样
- javascript - 如何在reducer中过滤数组对象而不影响实际状态
- javascript - CSP - 允许来自给定目录的我自己的脚本
- javascript - 为什么 JavaScript 中的一段有效代码会在 TypeScript 和 React 中产生映射函数错误?
- reactjs - 我正在将 CKEditor 用于 Strapi 项目,并且我想更改可用的默认标题
- java - 在 Intellij Idea 中遇到 Jar 问题
- python - 有没有更好的方法将熊猫数据框转换为张量数据集,特征和标签分开,如加载 API 数据集?
- html - 引导样式干扰 CSS 中的网格框
- protractor - 无法在量角器中找到按钮