问题解决:SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame

 在函数中修改:

def countGroupWord(df_sentence):
    stop_words = list(stopwords.words('english'))
    ....
    df_sentence['classId']=df_sentence['classId']
df_sentence['classId']=df_sentence['classId']会报错

SettingWithCopyWarning:
A value is trying to be set on a copy of a slice from a DataFrame.
Try using .loc[row_indexer,col_indexer] = value instead

See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy
df_sentence['classId']=df_sentence['abstract']

这个报警主要是说,你当前对B的操作可能会改变另一个DataFrame A

我新建一个对象再赋值就不会报错了,如果不在函数里面可以直接写df_sentence['classId']=df_sentence['abstract'],但作为函数参数修改它是不安全的(我猜是)

def countGroupWord(df_sentence):
    stop_words = list(stopwords.words('english'))
   
    df_title = df_sentence['title'] +  df_sentence['abstract']
    df_title['classId']=df_sentence['classId']

在main函数中执行的话就没问题

df_data=handlData(path_Data)
df_data['abstract']=df_data['title'];

执行通过。

posted @ 2018-11-12 11:14  喵喵帕斯  阅读(3311)  评论(0编辑  收藏  举报