私は、Python 3 Jupyterノートブックのデータフレームにアンケート回答のExcelシートを読み、特定のプログラムに個人がいる行を削除したいと考えています。ですから、私はデータフレーム 'df'から.locを使って新しいデータフレーム 'dfgeneral'にサブセット化しました。Pythonでデータフレームをサブセット化してSettingWithCopy警告を解決するには?
notnurse = df['Program Code'] != 'NSG'
dfgeneral = df.loc[notnurse,:]
は、私は、それらを表現するために使用されたコードに(すなわち満足、満足していない)のラベルをマップし、各応答を与えた回答者の数を見つけたいです。いくつかの質問が同じスケールを使用するので、私はそれらを介してループ:出力で
q5list = ['Q5_1','Q5_2','Q5_3','Q5_4','Q5_5','Q5_6']
scale5_dict = {1:'Very satisfied',2:'Satisfied',3:'Neutral',
4:'Somewhat dissatisfied',5:'Not satisfied at all',
np.NaN:'No Response'}
for i in q5list:
dfgeneral[i] = df[i].map(scale5_dict)
print(dfgeneral[i].value_counts(dropna=False))
、私はSettingWithCopy警告を受ける:
A value is trying to be set on a copy of a slice from a DataFrame.
Try using .loc[row_indexer,col_indexer] = value instead
私はdfgeneral作成するの.locを使用しました。これは偽陽性ですか、どのような変更が必要ですか?ご協力ありがとうございました。