我正在使用多类支持向量机训练我的数据,这是我的reference。每当我尝试运行下面的代码行时,都会出现内存错误。如何将df.iloc[:,:-1]赋给变量而不出现任何错误?
df.iloc[:,:-1]
x=df.iloc[:,:-1]
von4xj4u1#
您可以尝试以下操作:
x = df y = x.pop(x.columns[-1])
这会将x设置为对df的引用,然后将df的最右边的列(内容相当于df.iloc[:,-1])分配给y并从x中删除。
x
df
df.iloc[:,-1]
y
在Pandas来源中,pop()相当于:
pop()
item = x.columns[-1] y = x[item] del x[item]
因为del是就地操作,所以pop()不应该在改变输入 Dataframe 之前尝试复制它。这可能比OP的代码占用的内存少。
del
请注意,OP的评论中显示的df的5.6 GB大小也表明,尝试修改程序逻辑以对输入进行分区并以较小的批处理它可能是谨慎的。
1条答案
按热度按时间von4xj4u1#
您可以尝试以下操作:
这会将
x
设置为对df
的引用,然后将df
的最右边的列(内容相当于df.iloc[:,-1]
)分配给y
并从x
中删除。在Pandas来源中,
pop()
相当于:因为
del
是就地操作,所以pop()
不应该在改变输入 Dataframe 之前尝试复制它。这可能比OP的代码占用的内存少。请注意,OP的评论中显示的
df
的5.6 GB大小也表明,尝试修改程序逻辑以对输入进行分区并以较小的批处理它可能是谨慎的。