sklearn是否将熊猫索引用作功能?

时间:2019-10-31 00:29:01

标签: pandas scikit-learn

我将包含各种功能的pandas DataFrame传递给sklearn,我不希望估算器将dataframe索引用作功能之一。 sklearn是否将索引用作功能之一?

df_features = pd.DataFrame(columns=["feat1", "feat2", "target"])
# Populate the dataframe (not shown here)
y = df_features["target"]
X = df_features.drop(columns=["target"])

estimator = RandomForestClassifier()
estimator.fit(X, y)

1 个答案:

答案 0 :(得分:3)

否,sklearn不会将索引用作您的功能之一。它实际上发生在here上,当您调用fit方法时,将应用check_array函数。现在,如果您深入研究check_array function,您会发现您正在使用np.array函数将输入转换为数组,该函数实际上从数据帧中删除了索引,如下所示:< / p>

import pandas as pd 
import numpy as np
data = [['tom', 10], ['nick', 15], ['juli', 14]] 
df = pd.DataFrame(data, columns = ['Name', 'Age']) 
df  

    Name    Age
0   tom     10
1   nick    15
2   juli    14

np.array(df)
array([['tom', 10],
       ['nick', 15],
       ['juli', 14]], dtype=object)

希望这会有所帮助!