Я не смог найти его в stackoverflow, поэтому я хотел задать вопрос.
Давайте предположим, что у меня есть два столбца: A, B в фрейме данных, который состоит из нескольких слов,и я хочу создать новый столбец C, который будет TRUE / FALSE, основываясь на следующем правиле:
If word in B = word in A + 'ing', then it's True or vice versa
If word in B = word in A + 'ment', then it's True of vice versa.
, поэтому я определил следующую функцию:
def parts_of_speech(s1, s2):
return s1+'ing'==s2 or s1+'ment'==s2 or s1+s1[-1]+'ing'==s2
Например,
A B C
Engage Engagement True
Go Going True
Axe Axis False
Management Manage True
Я попробовал следующее:
df['C']=df.apply(lambda x: parts_of_speech(x.A, x.B) or
parts_of_speech(x.B, x.A) )
или
df['C']=df.apply(parts_of_speech(df['A'], df['B']) or
parts_of_speech(df['A'], df['B']) )
Я получаю ту же ошибку:
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
Не знаюзнаю, что я сделал неправильно.Легко ли это исправить?
любая помощь будет принята с благодарностью.