2016-05-13 5 views
0

私はPythonを初めて使いました。コードで同じエラーが発生しています。下記のSettingWithCopyWarningをどのように通過できますか?

これは私が実行しようとしているコードです:3:私はライン

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

されたら

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) 

それは私

メインを、次のエラーが発生します:SettingWithCopyWarning: DataFrameからスライスのコピーに値を設定しようとしています ドキュメントの警告:http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy

この警告(私は情報を失うことを心配していない)または違うコードを使用すると、エラーなしで同じことをするでしょうか?ありがとう。

+0

サイドノート:paper_aliasがdictの場合、 'titleのために、alias_ix in paper_alias.items():'と書くことができます。 'title'が不要な場合は、' alias_ix for paper_alias.values(): 'に対しても' – ptrj

答えて

1

代わりに使用します。

papers.loc[alias_ix, 'PaperAliasId'] 

.loc[row_indexer, column_index]フォーマット次は、上記のリンクしたドキュメントで説明します。

+0

私は 'PaperAliasId'が列だと思うので、' papers.loc [alias_ix、 'PaperAliasId'] 'です。 – ptrj

+0

意味があり、更新されました。 – Stefan

+0

結局これを解決できるのはどこですか? – Stefan

関連する問題