这是我的数据
id keyword
1 transfer
2 atm transfer
3 atm
4 ulta transfer
5 transfer transfer
我想删除transfer
这个词,如果没有一个词剩下,但是如果只剩下transfer
个词,这个词仍然存在,其他词是atm
,但如果只剩下atm
和transfer
,我们选择atm
,如果关键字出现多次,请做一次
这是代码
df['keyword_2'] = df['keyword'].mask(df['keyword'] != 'transfer', df['keyword'].str.replace('transfer', '').str.strip())
我的输出
id keyword keyword_2
1 transfer transfer
2 atm transfer atm
3 atm atm
4 ulta transfer transfer
5 transfer transfer
我的预期输出
id keyword keyword_2
1 transfer transfer
2 atm transfer atm
3 atm atm
4 ulta transfer transfer
5 transfer transfer transfer
希望这个问题足够清楚
最佳答案
比较按空格分割的值与集合和按 numpy.where
设置的值:
mask = df['keyword'].str.split().apply(set) != set(['transfer'])
df['keyword1'] = np.where(mask, df['keyword'].str.replace('transfer', '').str.strip(),
'transfer')
print (df)
id keyword keyword1
0 1 transfer transfer
1 2 atm transfer atm
2 3 atm atm
3 4 ulta transfer ulta
4 5 transfer transfer transfer
关于pandas - 如何仅在不删除关键字重复的情况下删除附加关键字的某些单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54864140/