Python

Python基礎:テキストデータのカテゴリ化

スポンサーリンク

はじめに

今回はテキストデータのカテゴリ化を扱います。たとえば、都道府県ごとにコードを割り振りたいなど、テキストデータをカテゴリ化する場面は意外に多いですよね。テキストデータのカテゴリ化は、一度map()を紹介した投稿の中で扱っていますが、今回あらためてご紹介します。

サンプルデータの作成

では、都道府県をカテゴリ化することにして、以下のコードでサンプルデータを作りましょう。

# ライブラリのインポート
import pandas as pd

# サンプルデータの作成
df_sample=pd.DataFrame(
    {'なまえ':['らくだ','らいおん','ぱんだ','ねこ','いぬ','いのしし','うま','かば'],
    '都道府県':['神奈川県','東京都','東京都','神奈川県','北海道','埼玉県','北海道','埼玉県']})
df_sample

どうぶつたちの住んでいる都道府県のデータです。この都道府県をコードで表すことにしましょう。

テキストデータのカテゴリ化

早速やってみます。ここに出てくる都道府県は、「神奈川県」」「東京都」「北海道」「埼玉県」ですね。それぞれにつぎのようにコードを振ることにしましょう。

北海道:001
東京都:002
神奈川県:003
埼玉県:004

都道府県は「道」や「県」「都」などまちまちで、さらに都道府県名の文字列の長さもことなります。でも、はじめの3文字を抜き取れば、ユニークになりますね。そこで、次のように処理することができます。

df_code=pd.concat([df_sample,df_sample['都道府県'].map({
    '北海道':'001',
    '東京都':'002',
    '神奈川県':'003',
    '埼玉県':'004'
})],axis=1)
df_code.columns=['なまえ','都道府県','コード']
df_code[['コード','都道府県','なまえ']].sort_values(by='コード')

都道府県をコードに変換する処理は、map()と辞書を使うことで実現しています。もとのデータフレームに、都道府県をもとに作成したシリーズを連結する処理をするだけで簡単につくれますね!

スポンサーリンク

まとめ

短くて簡単なコードですが、知らないとなかなかかけないこともありますよね。テキストデータをカテゴリ化したい場面は、意外に多いと思うので、おさえておくとよいでしょう。

コメント

タイトルとURLをコピーしました