Я пишу код, чтобы взять значения из каждого столбца фрейма данных и выполнить его обработку. Я получаю исключение всякий раз, когда есть значение NaN. Я не хочу бросать столбцы с Нан.
Ранее я решил эту проблему, просто перехватывая исключения, но теперь я не могу сделать то же самое, что и здесь, используя списочные выражения.
Может кто-нибудь предложить правильный способ сделать это?
Ранее я решил это так:
for index, row in df_work.iterrows():
descrip = row['description']
try:
r = Rake()
r.extract_keywords_from_text(descrip)
key_words_dict_scores = r.get_word_degrees()
row['Key_words'] = list(key_words_dict_scores.keys())
except Exception as e:
print(e)
row['Key_words'] = ''
Я хочу сделать то же самое здесь:
df_work['specialties'] = [','.join(x) for x in df_work['specialties'].map(lambda x: x.lower().replace(' ','').split(',')).values]
df_work['industry'] = [','.join(x) for x in df_work['industry'].map(lambda x: x.lower().replace(' ','').split(',')).values]
df_work['type'] = [','.join(x) for x in df_work['type'].map(lambda x: x.lower().replace(' ','').split(',')).values]
Я получаю эту ошибку в коде выше:
'float' object has no attribute 'lower'
Столбец Специальности содержит такие данные:
df_work.loc['TOTAL', 'specialties']
ВЫХОД >> 'Oil & Gas - Exploration & Production,Upstream,Refining,Trading,Shipping,Marketing,Energy,Crude Oil,Petroleum,Petrochemicals,Liquified Natural Gas,Renewable Energy,Drilling Engineering,Completion & Intervention Engineering,Geology,Geoscientists,IT'
type(df_work.loc['TOTAL', 'specialties'])
ВЫХОД >> str
Ожидаемый результат после запуска приведенного выше кода должен быть:
ВЫХОД >> 'oil&gas-exploration&production,upstream,refining,trading,shipping,marketing,energy,crudeoil,petroleum,petrochemicals,liquifiednaturalgas,renewableenergy,drillingengineering,completion&interventionengineering,geology,geoscientists,it'
type(df_work.loc['TOTAL', 'specialties'])
ВЫХОД >> str