【问题标题】:Item Wrong Length 1 Instead of 50 Pandas物品长度错误 1 ​​而不是 50 熊猫
【发布时间】:2021-04-09 19:06:49
【问题描述】:

我正在处理一个 csv 文件,总共包含 2 列和 51 行。

data = pd.read_csv("data.csv", sep = ',')
data.columns=['x_column', 'y_column']

然后我进行线性回归

X = data.iloc[:, 0].values.reshape(-1, 1)
y = data.iloc[:, 1].values.reshape(-1, 1)
lr = LinearRegression()

接下来我需要执行的是 Tukey 方法。

X = data.iloc[[0], :].values
y = data.iloc[[1], :].values

然后我绘制了方框,发现我的范围在 -40 到 10 之间。

data.boxplot(return_type='dict')
plt.plot()

我需要将我的异常值分配给一个值,以便在再次训练我的数据集之前将其删除。这就是我有问题的地方。

y_column = X[:, 1]
data_outliers = (y_column > 0.0)
data[data_outliers]

当我运行最后一部分时,我得到 Item wrong length 1 而不是 50. 错误,我不知道如何解决。任何帮助表示赞赏。

【问题讨论】:

    标签: pandas dataframe machine-learning data-mining tukey


    【解决方案1】:

    试试:

    data_outliers = (y_column > 0.0).ravel()
    

    问题是您的data_outliers 是一个具有二维(形状:(1,50))的 numpy 列,并且不可能像那样掩盖 df...ravel 只是将其展平...

    【讨论】:

    • 理论上你可能是对的@adir,但它并没有解决问题,我仍然有同样的错误。
    • 看来您初始化 y 列的方式有误,请打印更多数据以便我们更好地调查...
    • 在我运行第三部分中的代码之后,我打印了两列的前 5 行,它运行良好。我想我是正确的,直到我通过前三个部分@adir
    猜你喜欢
    • 2018-04-28
    • 1970-01-01
    • 2021-08-15
    • 1970-01-01
    • 2021-08-22
    • 1970-01-01
    • 1970-01-01
    • 2020-06-14
    • 1970-01-01
    相关资源
    最近更新 更多