从现有对象定义新对象时,Python可能会发生意外的事情。您在上面的评论中指出,您的数据框是沿着定义的
df =df_all.loc[df_all['issueid']==specific_id,:]。在这种情况下,
df实际上只是存储在
df_all对象中的行的替身:不会在内存中创建新对象。
为了完全避免这些问题,我经常不得不提醒自己使用该
copy模块,该模块显式强制将对象复制到内存中,以便在新对象上调用的方法不应用于源对象。我和您有同样的问题,请避免使用该
deepcopy函数。
就您而言,这应该摆脱警告消息:
from copy import deepcopydf = deepcopy(df_all.loc[df_all['issueid']==specific_id,:])df['industry'] = 'yyy'
编辑 :另请参阅下面的David M.精彩评论!
df = df_all.loc[df_all['issueid']==specific_id,:].copy()df['industry'] = 'yyy'



