SettingWithCopyWarning

SettingWithCopyWarning:

A value is trying to be set on a copy of a slice from a DataFrame. Try using .loc[row_indexer,col_in

网上搜了下,遇到这问题的也蛮多,但是很少说清楚的,认真的分析了,定义一个DataFrame  A,再让B=A,接着操作B,这时候操作B会直接引起对A的操作,这就产生了报警;

为了解决这个问题,建议使用.loc,即复制应用,那么上面的B=A可以修改位B=A.loc[:,:],这样修改B就不会修改A了;

下面给出一个例子:

这是修改前的:

result=shfd[[exch]]
result['份额']=result[exch]/result[exch].sum()
result['排名']=np.arange(1,result.shape[0]+1,1)

这是修改后的:

result=shfd.loc[:,[exch]]
result['份额']=result[exch]/result[exch].sum()
result['排名']=np.arange(1,result.shape[0]+1,1)

 

 

0
分享到:
广告位招租

评论0

请先

没有账号? 注册忘记密码?