はじめに
今年の初めから、データ分析の流れをシリーズで掲載しています。前回までに
- データの読み込み
- 基本統計量など、基本的なデータの概要把握
- データ型の変換
を扱いました。
データ型が正しくなければ、正しい分析はできません。そこで、前回はデータ型の変換を扱いました。今回は、分析をしやすくするための一つの方法として、分析の前段階としておこなう列名の変更や値の変換について扱います。
前回の記事は下のリンクからどうぞ。
列名の変更
データフレームの列名を変更するには2つの方法があります。
- データフレームのrenameを使う
- データフレームのcolumnsの属性を更新する
まずはサンプルのデータフレームを作ります。
import pandas as pd
df=pd.DataFrame({'columns1':[1,2,3,4,5],
'columns2':['a','b','c','d','e'],
'columns3':[True,True,False,True,False]})
df
rename()を使う方法
では、サンプルで用意したデータフレームの列名を実際に変更してみましょう。次のように複数の列名をまとめて変更することができます。
df.rename(columns={'columns1':'列名1','columns2':'列名2','columns3':'列名3'})
注意点があります。実は、この状態ではdfの列名は、元の「columns1」 「columns2」 「columns3」のままです。直接書き換えるには、inplaceオプションを使って次のようにおこないます。
df.rename(columns={'columns1':'列名1','columns2':'列名2','columns3':'列名3'},inplace=True)
df
columnsの属性を更新する方法
次に属性を更新する方法を紹介します。まずはサンプルデータフレームのcolumns属性みてみましょう。
df.columns
columns属性に直接、変更したい列名のリストを代入すれば更新することができます。次のようにします。
df.columns=['列名1','列名2','列名3']
df
非常に簡単ですね!
値の変換
さて、次は値の変換です。実は、列名の変換を紹介するのであれば、ふつうははセットで行名の変換を扱うことのほうが多いと思います。ただ、わたくしが、よく値の変換を忘れてしまって、renameとreplaceがごっちゃになっていたことがあったので、ここで扱うことにしました。
値の変換を簡単です。値を変更したい列を指定して、replace()に辞書型で変換前の値、返還後の値を与えるだけです。ここでは、「列名2」の値を変えてみましょう。
variants={
'a':'A',
'b':'B',
'c':'C',
'd':'D',
}
df['列名2']=df['列名2'].replace(variants)
df
まとめ
いかがだったでしょうか?今回は列名の変更と値の変換を扱いました。実際の前処理では、もっといろいろな値の変換処理をすることがあります。今回は簡単な例のみ扱いましたが、次回は、条件に応じて値を変換する例を扱います。
コメント