.loc 和 .contains 函数都返回一个数据框对象。pandas 文档指出,要为列中的每一行重新分配一个值,我应该使用 .loc,但是当与 .contains 结合使用时,我会收到以下警告:
试图在 DataFrame 中的切片副本上设置一个值。尝试改用 .loc[row_indexer,col_indexer] = value 查看文档中的注意事项:http: //pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy
但是,该过程有效,并且我为数据框列中的每一行重新分配了所需的值。我怎样才能避免这个警告?
#works
df.loc[df["matchType"]=='duo',["matchType"]]='duo'
#warning thrown but still works
df.loc[df["matchType"].str.contains('duo'),["matchType"]]='duo'