今回の講義はPandasの操作に関する問題を出されて
それを実際にコードを書いて解いていくという内容です。
特定のテーマに沿った課題に取り組みながら
スキルを向上させていきます。
前準備として、問題に出てくるデータは下記URLから
ダウンロードしておく必要があります。
https://drive.google.com/drive/folders/1oKCLH1D_KXVLJFutxtP1dvzgWNYtoqVi
Pandas 20本ノック
問題その8 重複除去
df_people の nationalityの列に対し、
重複がある値の行を除去した
DataFrameを取得してください。
pandasのメソッドの中には
drop_duplicates() 重複を除去するメソッド
というのがあるらしいです。
tとりあえずそのまま実行してみます。
df_people.drop_duplicates()
そのままのデータが出力されます。
このメソッドは
引数の指定がない場合、全てのカラムで一致しなければ除去されません。
今回のデータではage,id,name,nationalityの全てで
同一のデータが無かったので除去されませでした。
なので、引数にカラムを入れて実行します。
df_people.drop_duplicates(subset = 'nationality')
重複データが除去されました。
問題その9 カラム名変更
dfに対し、各カラム名の「(単位)」部分を削除したカラム名に変更してください。
新しいカラム名
・年月日・最深積雪・平均気温・平均雲量・最高気温・平均蒸気圧・最低気温・平均風速・降水量の合計・日照時間
今回の問題に関しては変更する値がそれほど多くないので
df.columns でカラムのリストを取得、
Index(['年月日', '平均気温(℃)', '最高気温(℃)', '最低気温(℃)', '降水量の合計(mm)', '最深積雪(cm)',
'平均雲量(10分比)', '平均蒸気圧(hPa)', '平均風速(m/s)', '日照時間(時間)'], dtype='object')
あとは手動でコピペして必要ないデータを削除します。
df.columns = ['年月日', '平均気温', '最高気温', '最低気温', '降水量の合計', '最深積雪',
'平均雲量', '平均蒸気圧', '平均風速', '日照時間']
df
今回の例題では全てのカラム名を変更しましたが、
ピンポイントで特定のカラム名を変更できるのが
rename()だそうです。
たとえば平均気温を平均と変更する場合、
変更前の名前と変更後の名前を辞書型で渡します。
df.rename(columns ={'平均気温':'気温'})
このrenameですが、注意点がありまして
このままでは元のデータフレームは変更されません。
元のデータフレームを変更したい場合は
df = df.rename(columns ={'平均気温':'気温'})
として代入する必要があるそうです。
コメント