2015-01-12 2 views
-1

Я пытаюсь повторно маркировать/комбинировать свои ярлыки на рынке, используя следующий код. Тем не менее, все просто проходит через супер быстрый, и никакого сопоставления на самом деле не происходит, а просто возвращает мне исходные столбцы. Компания - это имя таблицы, а company.market - столбец рынка. Компания является фреймворком данных, и импортируются панды и numpy.Python Dict, Lambda x, map() не работает

Eg. company_name market   value 
    'AA'   'Bio-Pharm'  $1,000 
    'BB'   'Biotechnology' $2,000 

Я хотел бы переобозначим рынок компания АА к «Biothchnology», используя мой код ...

market_mapping = { 
'Bio-Pharm': 'Biotechnology', 
'Biomass Power Generation': 'Biotechnology', 
'Bioinformatics': 'Biotechnology', 
'Biometrics': 'Biotechnology', 
'Biotechnology and Semiconductor': 'Biotechnology', 
'Biofuels':'Biotechnology'} 

f = lambda x: market_mapping.get(x,x) 
company.market = company.market.map(f) 

Не могли бы вы помочь мне на то, что здесь не так? Цените свою помощь заранее :)

+0

Что такое 'компания' и что такое' company.market'? – BrenBarn

+0

'company.market' что это за переменная? – GLHF

+0

Привет @BrenBarn Я обновил свой вопрос. Спасибо за ваш комментарий! – ellie

ответ

0

company - это dataframe, а market - объект, но не строка. Я изменил код:

f = lambda x: market_mapping.get(str(x),x) 

И код работает!

Смежные вопросы