【发布时间】:2022-12-14 13:36:37
【问题描述】:
我想从 pandas DataFrame 中提取一个特定的列作为 y。
到目前为止,我找到了两种方法:
# The First way
y_df = df[specific_column]
y_array = np.array(y_df)
X_df = df.drop(columns=[specific_column])
X_array = np.array(X_df)
# The second way
features = ['some columns in my dataset']
y_df = np.array(df.loc[:, [specific_column]].values)
X_df = df.loc[:, features].values
但是当我比较每个 y 数组中的值时,我发现它们不相等:
y[:4]==y_array[:4]
array([[ True, True, False, False],
[ True, True, False, False],
[False, False, True, True],
[False, False, True, True]])
但我确信这两个数组包含相同的元素:
y[:4], y_array[:4]
(array([[0],
[0],
[1],
[1]], dtype=int64),
array([0, 0, 1, 1], dtype=int64))
那么,当我将它们放在一起比较时,为什么会看到 False 值?
【问题讨论】:
-
因为维度不一样,你有广播,用
y[:4].ravel() == y_array[:4],或者y[:4,0] == y_array[:4]
标签: python pandas feature-extraction