ホームページ >バックエンド開発 >Python チュートリアル >パンダのSettingWithCopyWarningを効果的に処理するにはどうすればよいですか?
Pandas を 0.11 から 0.13.0rc1 にアップグレードする際、ユーザーは多数の SettingWithCopyWarning メッセージに遭遇する可能性があります。そのような例の 1 つは次のとおりです。
E:\FinReporter\FM_EXT.py:449: SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame. Try using .loc[row_index,col_indexer] = value instead quote_df['TVol'] = quote_df['TVol']/TVOL_SCALE
SettingWithCopyWarning フラグは、次のような「連鎖」割り当てを混乱させる可能性があります。
df[df['A'] > 2]['B'] = new_val # new_val not set in df
これは常に機能するとは限りません。特に最初の選択がコピーを返す場合には期待されます。この問題を解決するには、次の手順を使用します。
df.loc[df['A'] > 2, 'B'] = new_val
提供されたコード スニペット内:
quote_df['TVol'] = quote_df['TVol']/TVOL_SCALE
を実行すると、連鎖代入は以下と同等です:
quote_df = quote_df[quote_df['A'] > 2] quote_df['TVol'] = new_val
このパターンは否定的な例と区別できず、
書き込みが元のフレームに影響を与えないと確信できる場合は、次のコマンドで警告を無効にします。
import pandas as pd pd.options.mode.chained_assignment = None # default='warn'
さらに理解するには、次のリソースを参照してください:
以上がパンダのSettingWithCopyWarningを効果的に処理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。