我想从Pandas数据框中提取一个特定的列作为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值呢?
1条答案
按热度按时间vjhs03f71#
如果使用双
[[]]
,则获取一个元素DataFrame,如果转换为数组,则获取2d数组:解决方案是删除
Series
的[]
,如果转换为阵列,则获得1d阵列: