「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > サブセットから派生したデータフレームを変更するときに、「設定されたコピーワーニング」が発生するのはなぜですか?

サブセットから派生したデータフレームを変更するときに、「設定されたコピーワーニング」が発生するのはなぜですか?

2025-02-21に投稿
ブラウズ:667

Why Does `SettingWithCopyWarning` Occur When Modifying DataFrames Derived from Subsets?

を見つける

を.loc [row_indexer、col_indexer] = valueを使用してデータフレームを変更しようとする場合、setwithcopywarningを使用してデータフレームを変更しようとする場合、

を見つけます。持続します。この問題は、.copy()メソッドを呼び出すことなく、別のデータフレームからデータフレームスライスにアクセスすることに起因します。

pandasをpdとしてインポートします d = {'col1':[1、2、3、4]、 'col2':[3、4、5、6]} df = pd.dataframe(data = d) df ['new_column'] = none df.loc [0、 'new_column'] = 100

最初に、警告はありません。ただし、DFのサブセットに基づいて新しいデータフレームを作成する:
import pandas as pd

d = {'col1': [1, 2, 3, 4], 'col2': [3, 4, 5, 6]}
df = pd.DataFrame(data=d)

df['new_column'] = None
df.loc[0, 'new_column'] = 100
new_df = df.loc [df.col1> 2]

を作成し、.loc:
import pandas as pd

d = {'col1': [1, 2, 3, 4], 'col2': [3, 4, 5, 6]}
df = pd.DataFrame(data=d)

df['new_column'] = None
df.loc[0, 'new_column'] = 100
new_df.loc [2、 'new_column'] = 100

トリガー警告。既存のデータフレームのサブセットに基づく新しいデータフレーム。 > 2] .copy() new_df_copy.loc [2、 'new_column'] = 100
import pandas as pd

d = {'col1': [1, 2, 3, 4], 'col2': [3, 4, 5, 6]}
df = pd.DataFrame(data=d)

df['new_column'] = None
df.loc[0, 'new_column'] = 100
.copy()を呼び出すことにより、サブセットの独立したコピーを作成し、値を変更するときに警告を回避します。
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3