- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试预处理数据。
data = {'Country':['Germany', 'Turkey', 'England', 'Turkey', 'Germany', 'Turkey'],
'Age':['44', '32', '27', '29', '31', '25'],
'Salary':['5400', '8500', '7200', '4800', '6200', '10850'],
'Purchased':['yes', 'yes', 'no', 'yes', 'no', 'yes']}
df = pd.DataFrame(data)
X = df.iloc[:,0].values
预期结果是这样的:
|---|---|---|----|-------|---|
| 1 | 0 | 0 | 44 | 5400 | 1 |
| 0 | 1 | 0 | 32 | 8500 | 1 |
| 0 | 0 | 1 | 27 | 7200 | 0 |
| 0 | 1 | 0 | 29 | 4800 | 1 |
| 1 | 0 | 0 | 31 | 6200 | 0 |
| 0 | 1 | 0 | 25 | 10850 | 1 |
这是失败的代码。
from sklearn.preprocessing import OneHotEncoder
from sklearn.compose import ColumnTransformer
ct = ColumnTransformer([("city_category", OneHotEncoder(dtype='int'), [0])], remainder="passthrough")
X = ct.fit_transform(X)
输出:
IndexError: tuple index out of range
我想了解在这种情况下如何使用ColumnTransformer函数?
最佳答案
不需要 sklearn,你可以用 pandas 做到这一点:
import pandas as pd
data = {
"Country": ["Germany", "Turkey", "England", "Turkey", "Germany", "Turkey"],
"Age": ["44", "32", "27", "29", "31", "25"],
"Salary": ["5400", "8500", "7200", "4800", "6200", "10850"],
"Purchased": ["yes", "yes", "no", "yes", "no", "yes"],
}
df = pd.DataFrame(data)
df = pd.concat([pd.get_dummies(df["Country"]), df.drop("Country", axis=1)], axis=1)
df[["Age", "Salary"]] = df[["Age", "Salary"]].astype(int)
df["Purchased"] = df["Purchased"].map(lambda x: x == "yes").astype(int)
print(df.head())
输出为:
England Germany Turkey Age Salary Purchased
0 0 1 0 44 5400 1
1 0 0 1 32 8500 1
2 1 0 0 27 7200 0
3 0 0 1 29 4800 1
4 0 1 0 31 6200 0
关于python - 如何使用 ColumnTransformer 处理分类数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56299142/
我想用sklearn.compose.ColumnTransformer始终如一(不是并行的,因此,第二个转换器应该只在第一个转换器之后执行)以这种方式交叉列列表: log_transformer =
使用 scikit-learn ColumnTransformer 对 DataFrame 应用转换时,我收到 SettingWithCopyWarning,但我不确定这是为什么。 这是我的代码。 i
我将读取 csv、训练模型和预测请求数据的以下函数放在一起。 我有以下 ValueError:使用剩余关键字时,列顺序必须相等才能适合和转换 训练数据和用于预测的数据具有完全相同的列数,例如 15。我
我正在尝试制作一个处理数字、分类和文本变量的管道。我希望在运行分类器之前将数据输出到新的数据帧。我收到以下错误 ValueError: all the input array dimensions f
我想了解如何在管道中应用逆变换,而不是使用 StandardScaler直接发挥作用。 我正在使用的代码如下: import pandas as pd import numpy as np from
这是我的输入数据: 这是所需的输出,其中对列 r、f 和 m 进行了转换,并将结果附加到原始数据 这是代码: import pandas as pd import numpy as np from s
我正在尝试预处理数据。 data = {'Country':['Germany', 'Turkey', 'England', 'Turkey', 'Germany', 'Turkey'],
我正在尝试使用参数定义自定义转换器,并在 sklearn.compose.ColumnTransformer 中使用它们。我不明白为什么当我在 ColumnTransformer 上运行 fit_tr
我有一个实体,我使用 ColumnTransformer 来绑定(bind)和提取值: @Entity class BPoint { @Id private Integer id;
我想知道是否可以在 ColumnTransformer 中使用 MultilabelBinarizer。 我有一个玩具 Pandas 数据框,例如: df = pd.DataFrame({"id":[
sklearn 中的 FeatureUnion() 和 ColumnTransformer() 有什么区别? 如果我想构建一个包含混合数据类型(分类、数字、非结构化文本)的特征的监督模型,我应该使用哪
我已经定义了适合一个分类特征“性别”的数据: data = pd.DataFrame({ 'age': [25,19, 17], 'sex': ['female', 'male', '
在 ColumnTransformer 中,我想使用 Tfidf 管道。但即使对于这个简单的示例,原始管道的转换输出类型和放入 ColumnTransformer 中的转换输出类型也是非常不同的类型。
这是我的第一个机器学习项目,也是我第一次使用 ColumnTransformer。我的目标是执行两步数据预处理,并为每一步使用 ColumnTransformer。 在第一步中,我想用字符串 'mis
我正在寻求使用 sklearn 的 ColumnTransformer 函数构建数据预处理管道的帮助。 目前我的流水线看起来像这样: from scipy.stats.mstats import wi
我正在关注 Aurelion Geron 的机器学习书籍。 我正在试验 ColumnTransformer 类。当我包含 SimplerImputer 时,会创建一个额外的列。我知道 SimplerI
我想在引用 ColumnTransformer(它是管道的一部分)中包含在 grid_search 的 param_grid 中的单个预处理器时找出正确的命名约定。 环境&样本数据: import s
我正在使用 scikit-learn 中的加州住房数据集。我想设计两个二元特征:“旧金山 10 公里以内”和“洛杉矶 10 公里以内”。我创建了一个自定义转换器,它自己可以正常工作,但是当我将它放入
我目前有一个这样注释的字段: ColumnTransformer( read="AES_DECRYPT(C_first_name, 'yourkey')", w
我通过加载 .pkl 文件来预测分类模型的值。它在我的本地工作,但在 AWS lambda 函数中抛出错误。本地和AWS上的pkl文件是相同的,因此问题不应该出现在pkl文件中。另外,我正确读取了 p
我是一名优秀的程序员,十分优秀!