У меня есть список слов типа list
, содержащий большое количество английских слов.
У меня также есть кадр данных, который выглядит следующим образом: -
FileName PageNo LineNo GOODS_DESC
1 17743633 - 1 TM000002 69 Abuj Cen Le
31 17743633 - 1 TM000007 126 Mr USD
33 17743633 - 1 TM000008 22 TABLEAU EMBALLAGE
34 17743633 - 1 TM000008 24 LISA e EMBALV
46 17743633 - 1 TM000008 143 Cen
47 17743633 - 1 TM000008 146 A Gl
50 17743633 - 1 TM000009 121 Ppvv Tn Ppvv In
51 17743633 - 1 TM000009 129 SPECIFY
52 17743633 - 1 TM000009 136 Decrp G
58 17743633 - 1 TM000009 97 Je ugn
60 17743633 - 1 TM000009 108 De Veel
61 17743633 - 1 TM000014 44 TYRE CHIPS SHREDDED TYRES
63 17743633 - 1 TM000014 48 TYRE CHIPS SHREDDED TYRES
Я хочу сохранить толькоте слова в столбце «GOODS_DESC», которые присутствуют в списке слов.
Мой желаемый вывод: -
FileName PageNo LineNo GOODS_DESC
1 17743633 - 1 TM000002 69 NaN
31 17743633 - 1 TM000007 126 Mr USD
33 17743633 - 1 TM000008 22 TABLEAU
34 17743633 - 1 TM000008 24 LISA
46 17743633 - 1 TM000008 143 NaN
47 17743633 - 1 TM000008 146 NaN
50 17743633 - 1 TM000009 121 NaN
51 17743633 - 1 TM000009 129 SPECIFY
52 17743633 - 1 TM000009 136 NaN
58 17743633 - 1 TM000009 97 NaN
60 17743633 - 1 TM000009 108 NaN
61 17743633 - 1 TM000014 44 TYRE CHIPS SHREDDED TYRES
63 17743633 - 1 TM000014 48 TYRE CHIPS SHREDDED TYRES
Мой подход также дает вывод, но я использую списки иэто медленно.Я хочу сделать это быстро.
for rows in df.itertuples():
a = []
flat_list = []
a.append(rows.GOODS_DESC)
flat_list = [item.strip() for sublist in a for item in sublist.split(' ') if item.strip()]
flat_list = list(sorted(set(flat_list), key=flat_list.index))
flat_list = [i for i in flat_list if i.lower() in word_list]
if(not flat_list):
df.drop(rows.Index,inplace=True)
continue
s=' '.join(flat_list)
df.loc[rows.Index,'GOODS_DESC']=s
df['GOODS_DESC'] = df['GOODS_DESC'].str.upper()