Я запускаю длинный скрипт с кадром данных df
. при запуске сценария, построении и изменении df
столбец за столбцом, я снова и снова получаю эту ошибку в командной строке:
Значение пытается быть установлено для копии среза из DataFrame. Пытаться
используя вместо этого .loc [row_indexer, col_indexer] = значение. См. предостережения в
документация:
http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy
Но тогда он напечатает строку, которая вызывает предупреждение, и это не будет похоже на проблему. Строки, подобные приведенным ниже, будут вызывать его (каждая строка запускает его отдельно):
df['ZIP_DENS'] = df['ZIP_DENS'].astype(str)
df['AVG_WAGE'] = df['AVG_WAGE'].astype(str).apply(lambda x:x if x != 'nan' else 'unknown')
df['TERM_BIN'] = df['TERMS'].map(terms_dict)
df['LOSS_ONE'] = 'T_'+ df['TERM'].astype(str) +'_C_'+ df['COMP'].astype(str) + df['SIZE']
# this one's inside a loop:
df[i + '_BIN'] = df[i + '_BIN'].apply(lambda x:x if x != 'nan' else 'unknown')
Есть несколько примеров мутаций, которые я делаю на кадре данных. Теперь, это предупреждение только начало появляться, но я не могу воссоздать эту проблему в интерпретаторе. Когда я открываю терминал, я пытаюсь сделать что-то подобное, и это не дает мне никаких предупреждений:
import pandas as pd
df = pd.DataFrame([list('ab'),list('ef')],columns=['first','second'])
df['third'] = df[['first','second']].astype('str')
Есть ли что-то, чего я упускаю, что-то, чего я не понимаю в природе DataFrames, о которой пытается предупредить это предупреждение? Как вы думаете, возможно, я что-то сделал с этим фреймом данных в начале скрипта, а затем все последующие мутации объекта являются мутациями в представлении или его копии, или происходит что-то странное?