从另一列中出现的一列列中删除字符串中的单词的过程是什么?
例如:
Sr A B C
1 jack jack and jill and jill
2 run you should run, you should ,
3 fly you shouldnt fly,there you shouldnt ,there
可以看出我想要column C
,使其 B减去A的内容。请注意第三个示例,其中fly
后面跟一个逗号,所以它还应该考虑标点符号(如果代码更多的是检测周围的空格)。
Column A
也可以包含2个字,因此需要将其删除
我需要Pandas中的表达式,例如:
df.apply(lambda x: x["C"].replace(r"\b"+x["A"]+r"\b", "").strip(), axis=1)
答案 0 :(得分:4)
这看起来如何?
In [24]: df
Out[24]:
Sr A B
0 1 jack jack and jill
1 2 run you should run,
2 3 fly you shouldnt fly,there
[3 rows x 3 columns]
In [25]: df.apply(lambda row: row.B.strip(row.A), axis=1)
Out[25]:
0 and jill
1 you should run,
2 ou shouldnt fly,there
dtype: object
答案 1 :(得分:3)
试试这个:
x['C'] = x['B'].replace(to_replace=r'\b'+x['A']+r'\b', value='',regex=True)
它基于previous answer,其中someone告诉我如何在熊猫中完全做到这一点。我改变了一点以适应当前的情况:)