DataConversionWarning: A column–vector y was passed when a 1d array was expected
-
DataConversionWarning: A column–vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().
y = column_or_1d(y, warn=True)
-
这个警告信息提示输入的 y 是一个列向量,但是模型期望接收一个一维数组,可以使用 ravel() 函数将 y 重塑为一维数组
import numpy as np # 假设 y 是一个列向量 y = np.array([[1], [2], [3]]) # 使用 ravel() 函数将 y 重塑为一维数组 y = np.ravel(y) # 打印 y 的形状(shape) print(y.shape)
-
如果继续报错,
AttributeError: 'DataFrame' object has no attribute 'flatten'
,在 Pandas 中,可以使用 .values.ravel() 方法将 DataFrame 中的列向量转换为一维数组。import pandas as pd # 假设 y 是一个带有 "label" 列的 DataFrame y = pd.DataFrame({'label': [1, 2, 3]}) # 将 "label" 列转换为一维数组 y = y['label'].values.ravel() # 打印 y 的形状(shape) print(y.shape)
-
之后,又报错
AttributeError: 'numpy.ndarray' object has no attribute 'loc'
-
这个错误通常是因为你将一个 NumPy 数组(numpy.ndarray)误认为 Pandas DataFrame。NumPy 数组没有 .loc 方法,因此 Python 会抛出 “AttributeError” 异常。
请检查代码中是否有将 NumPy 数组赋值给 Pandas DataFrame 变量的情况。如果是这样,请确保在使用 .loc 方法之前将其正确转换为 Pandas DataFrame。 -
例如,假设 y 是一个 NumPy 数组,我们要将其转换为 Pandas DataFrame 并使用 .loc 方法:
import pandas as pd # 创建 Series data = [10, 20, 30] labels = ['A', 'B', 'C'] s = pd.Series(data, index=labels) # 显示 Series print(s) >> A 10 >> B 20 >> C 30 >> dtype: int64
-
例如,假设 y 是
<class 'pandas.core.frame.DataFrame'>
,我们要将其转换为<class 'pandas.core.series.Series'>
并使用iloc方法/loc方法:import pandas as pd # 创建一个 DataFrame df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]}) # 使用 iloc 或 loc 方法选择单独的列并转换为 Series series = df.iloc[:, 0] # 选择第一列 # 或 series = df.loc[:, 'A'] # 根据列名选择列 # 打印结果 print(type(df)) # <class 'pandas.core.frame.DataFrame'> print(type(series)) # <class 'pandas.core.series.Series'>
原文地址:https://blog.csdn.net/crist_meng/article/details/129800943
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_40690.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!