我有下面的DataFrame和一个Dict。它不一定是一个字典,但键值对属于一起。
现在的问题是,我想删除那些'company'与'removation_dict'的键相匹配的行。作为同一行的第二个条件,'string'中的值必须包含那个特定键的值的字符串。 该值不一定是1:1的匹配,它只需包含该字符串。
df = pd.DataFrame({'ID': ['A', 'B', 'C', 'D', 'E', 'F'],
'company': ['BRAMSUNG', 'BRAMSUNG', 'VRENOVO', 'WRAPPLE', 'PIRCOSOFT', 'PIRCOSOFT'],
'astring': ['BRAMSUNG MAINSTREET SEOUL', 'BRAMSUNG SUBSTREET SEOUL', 'LOOKING FOR VRENOVO IN BRAMSUNG MAINSTREET', 'I GO FOR WRAPPLE IN BRAMSUNG MAINSTREET', 'PIRCOSOFT ACCOUNT NR. 1222', 'DEPOSIT TO PIRCOSOFT ACCOUNT NOW']
removal_dict = {'BRAMSUNG': 'BRAMSUNG MAINSTREET',
'PIRCOSOFT': 'PIRCOSOFT ACCOUNT NR.',
'VRENOVO': 'LOOKING FOR VRENOVO'
ID company astring
0 A BRAMSUNG BRAMSUNG MAINSTREET SEOUL
1 B BRAMSUNG BRAMSUNG SUBSTREET SEOUL
2 C VRENOVO LOOKING FOR VRENOVO IN BRAMSUNG MAINSTREET
3 D WRAPPLE I GO FOR WRAPPLE IN BRAMSUNG MAINSTREET
4 E PIRCOSOFT PIRCOSOFT ACCOUNT NR. 1222
5 F PIRCOSOFT DEPOSIT TO PIRCOSOFT ACCOUNT NOW
因此,ID的A、C和E应该被放弃。
ID A必须被放弃,因为有一个键荣盛集团和一个值荣盛集团 MAINSTREET在removation_dict中。另一方面,ID B不能被删除,因为只有键匹配,而没有值。
Expected result should be:
ID company astring
1 B BRAMSUNG BRAMSUNG SUBSTREET SEOUL
3 D WRAPPLE I GO FOR WRAPPLE IN BRAMSUNG MAINSTREET
5 F PIRCOSOFT DEPOSIT TO PIRCOSOFT ACCOUNT NOW