我如何通过下面的SettingWithCopyWarning?

时间:2016-05-13 03:39:22

标签: python numpy pandas

我是Python新手,我在一段代码上遇到同样的错误。

这是我正在尝试运行的代码:

for title in paper_alias.keys():
    alias_ix = paper_alias[title]
    papers['PaperAliasId'][alias_ix] = [papers.Id[alias_ix[0]]] * len(alias_ix)
    papers['PaperAliasSize'][alias_ix] = [len(alias_ix)] * len(alias_ix)

当我到达

papers['PaperAliasId'][alias_ix] = [papers.Id[alias_ix[0]]] * len(alias_ix)
papers['PaperAliasSize'][alias_ix] = [len(alias_ix)] * len(alias_ix)

它给了我以下错误

main :3:SettingWithCopyWarning: 尝试在DataFrame的切片副本上设置值 请参阅文档中的警告:http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy

任何关于绕过此警告的方式的建议(我不担心丢失信息)或使用不同的代码会在没有错误的情况下做同样的事情吗?感谢。

1 个答案:

答案 0 :(得分:1)

改为使用:

papers.loc[alias_ix, 'PaperAliasId']

遵循您在上面链接的文档中说明的.loc[row_indexer, column_index]格式。