如何正确定义df.iloc[:,:-1]而不出现任何错误



我正在使用多类SVM训练我的数据,这是我的参考。每当我试图运行下面的行时,它都会给我一个内存错误。如何在不出现任何错误的情况下将df.iloc[:,:-1]分配给变量?

x=df.iloc[:,:-1]

你可以试试这个:

x = df
y = x.pop(x.columns[-1])

这会将x设置为对df的引用,然后将df的最右侧列(内容等效于df.iloc[:,-1](分配给y并从x中删除。

在熊猫源中,pop()相当于:

item = x.columns[-1]
y = x[item]
del x[item]

因为del是一个就地操作,所以pop()在对输入数据帧进行更改之前不应该尝试对其进行复制。这可能比OP的代码占用更少的内存。

请注意,OP的评论中显示的df的大小为5.6GB,这也表明尝试修改程序逻辑以划分输入并以较小的批处理它可能是谨慎的。

相关内容

最新更新