Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Memahami dan Mengendalikan Tetapan PandasWithCopyWarning?
SettingWithCopyWarning, yang diperkenalkan dalam Pandas 0.13.0rc1, memberi amaran kepada pengguna tentang kemungkinan isu apabila menetapkan nilai pada kepingan atau salinan DataFrames. Amaran ini bertujuan untuk mengelakkan kekeliruan dan tingkah laku yang tidak dijangka.
Amaran itu timbul disebabkan oleh "tugasan berantai", di mana nilai ditetapkan pada kepingan atau salinan DataFrame, seperti sebagai:
df[df['A'] > 2]['B'] = new_val # new_val not set in df
Dalam contoh ini, pilihan pertama (df[df['A'] > 2]) mengembalikan salinan, dan cuba menetapkan 'B' pada salinan ini tidak akan mengemas kini DataFrame 'df' asal. Untuk mengemas kini 'df' dengan betul, gunakan pengakses loc:
df.loc[df['A'] > 2, 'B'] = new_val
Jika anda pasti bahawa anda tidak memerlukan perubahan untuk dicerminkan kembali kepada DataFrame asal, anda boleh melumpuhkan amaran:
import pandas as pd pd.options.mode.chained_assignment = None # default='warn'
Untuk tugasan pada kepingan atau salinan, gunakan aksesori loc atau iloc, yang membenarkan pengubahsuaian terus DataFrame asal:
df.loc[df['A'] > 2, 'B'] = new_val df.iloc[2:5, 4] = [1, 8, 8]
Jika anda memerlukan rujukan baharu untuk DataFrame anda, buat salinan menggunakan DataFrame.copy() sebelum mengubah suainya:
new_df = df.copy() new_df['C'] = df['A'] + df['B']
Dalam kes khusus anda, bukannya mengubah suai quote_df asal, anda boleh menjana semula DataFrame baharu dengan perubahan yang diingini:
quote_df = pd.read_csv(StringIO(str_of_all), sep=',', names=list('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefg')) quote_df.rename(columns={'A':'STK', 'B':'TOpen', ...}, inplace=True) quote_df['TVol'] = quote_df['TVol'] / TVOL_SCALE quote_df['TAmt'] = quote_df['TAmt'] / TAMT_SCALE quote_df['TDate'] = quote_df.TDate.map(lambda x: x[0:4]+x[5:7]+x[8:10])
Atas ialah kandungan terperinci Bagaimana untuk Memahami dan Mengendalikan Tetapan PandasWithCopyWarning?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!