现在,我有一个像这样的DF
Words Words1
Little Red Red Apple
Cracker Barrel Wood Grain
Far Away Man Flat Rate Shipping
我想根据特定条件从我的DF中删除单元格,其中某些单词不能同时出现在同一个短语中。
例如:从以下DF移除单元格,其中" Flat"与#34; Shipping"相同的短语和哪里"远"和#34; Man"在同一个短语中。我一直在玩这样的东西,但它不起作用......
Words.where(Words.applymap(lambda x: 'Flat' and 'Shipping' in x))
有什么想法吗?
答案 0 :(得分:0)
你是什么意思"删除细胞"?我想你的意思是删除行吗?那么这将是一个apply
,因为你会逐行考虑事情。
In [8]: def pred(x):
c1 = ('Far' in x[0]) and ('Man' in x[0])
c2 = ('Flat' in x[1]) and ('Shipping' in x[1])
...: return c1 and c2
In [9]: df.apply(pred, axis=1)
Out[9]:
0 False
1 False
2 True
dtype: bool
因此,您可以删除符合条件的行
In [10]: df[~df.apply(pred, axis=1)]
Out[10]:
Words Words1
0 Little Red Red Apple
1 Cracker Barrel Wood Grain
将str.match
方法与正则表达式一起使用可能会更快。