Замените столбец в пандах, если другой столбец содержит строку - PullRequest
0 голосов
/ 27 июня 2018

У меня есть два столбца newlabels и newlabels_tobeReplaced. Если newlabels содержит слово «trifurcation» в своем предложении, newlabels_tobeReplaced следует заменить на «trifurcation» У меня есть следующий код

df_new.loc[df_new.newlabels.str.contains('trifurcation'),'newlabels_tobeReplaced'] = 'trifurcation'

Но я получаю эту ошибку:

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

See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy
self.obj[item] = s

Есть идеи, как получить правильный результат. Проблема в том, что у newlabels есть такие значения, как: «Формы волны предполагают трифукационную болезнь с легкой дистальной ишемией левой нижней конечности в состоянии покоя на уровне лодыжки».

1 Ответ

0 голосов
/ 27 июня 2018

Вы можете обойти это предупреждение, переназначив на df_new копию, созданную из assign

df_new = df_new.assign(
    newlabels_tobeReplaced=
    lambda d: d['newlabels_tobeReplaced'].mask(
        d.newlabels.str.contains('trifurcation'), 'trifurcation'
    )
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...