###前提・実現したいこと
Pythonで、あるマーケティングキャンペーンのCSVファイルを読み込み、DataFrameにあてはめた、以下のデータがあります。
やりたいこととしては、
このCOUNTRY_NAMEのカラムを集計して、利用国の多い順番に上から、順次に番号をふり、その番号を割り振ったものを、新たなカラムとして追加したいのです。
###試したこと
以下のコードを実行し各国利用のデータ情報は明らかにできました。
from collections import Counter
data=marketdata['COUNTRY_NAME']
counter = Counter(data)
for word, cnt in counter.most_common():
print word, cnt
この17か国の各国に番号を順番に割り当て、その番号を新たなカラムに表示したいです。マッピングを使えば、結果としてはほしいものを出せましたが、以下の通り、すごく手間です。
(書いたコード)
COUNTRY_mapping={'Argentina':2,'Brazil':4, 'Canada':8,'China':13,'Denmark':11,'France':15,'Germany':7,'Italy':3,'Japan':14,'New Zealand':12,'Poland':5,'Saudi Arabia':9,'Singapore':10,'Spain':16, 'Turkey':17, 'United Kingdom':6,'United States of America':1}
marketdata['Rank_COUNTRY_NAME'] = marketdata['COUNTRY_NAME'].map(COUNTRY_mapping)
(得た結果)
最終的にしたい形はこれなのですが、手動で国名をひとつひとつかいて、番号を割り振ったのであまり効率的ではありません。これをループか何かで簡単に変換して表示する方法はないでしょうか。
エラーメッセージ :ありません
色々と他にもやってみましたが、どうしても形になりませんでした。どうかよろしくお願いいたします。

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/04/04 01:55
2017/04/04 01:58
2017/04/04 02:07
2017/04/04 08:31