Я столкнулся с SettingWithCopyWarning
в Python.Я искал в Интернете, но кажется, что все решения не работают для меня.
Входные данные таковы:
id genre
0 1 Drama, Romance
1 2 Action, Drama
2 3 Action, Comedy
3 4 Thriller
Ожидаемый результат должен быть:
id Drama Romance Action Comedy Thriller
0 1 1 1 0 0 0
1 2 1 0 1 0 0
2 3 0 0 1 1 0
3 4 0 0 0 0 1
Я хочу получить подмножество входных данных, добавить несколько столбцов, изменить добавленный столбец и вернуть подмножество.По сути, я НЕ хочу изменить исходный data
, я просто хочу получить подмножество, которое должно быть новым фреймом данных:
# the function to deal with the genre
def genre(data):
subset = data[['id', 'genre']]
for i, row in subset.iterrows():
if isinstance(row['genre'], float):
continue
genreList = row['genre'].split(', ')
for genre in genreList:
if genre in list(subset):
subset.loc[i][genre] = 1
else:
subset.loc[:][genre] = 0
subset.loc[i][genre] = 1
return subset
Я пробовал много способов,но ни один из них не избавляется от SettingWithCopyWarning
:
subset = data[['A', 'B']].copy()
. subset = data.filter(['A','B'], axis=1)
subset = pd.Dataframe(data[['A', 'B']])
subset = data.copy()
subset.drop(columns =['C','D'])
subset = pd.DataFrame({'id': list(data.id), 'genre': list(data.genre)})
У кого-нибудь есть идеи, как это исправить?Или есть способ прекратить предупреждение?
Заранее спасибо !!