本記事をご覧いただきありがとうございます。本記事では、Pythonのライブラリ、Pandasのデータフレームの列名に関する処理について取り扱います。
本記事のターゲットは、データフレームの取り扱いにまだそこまで慣れていない方を対象としています。上級者の方、お気づきの点がございましたら、ご指導いただけますと幸いです。
該当コード
まずは、いますぐ使えるコードを貼っておきます。なんとなく使い方がわかっている方は、コチラでサクッと解決しちゃってください。
import pandas as pd
# データのインポート
df = pd.read_csv('data.csv')
シンプルな使い方
df_rename = df.rename(columns={'Col_1':'column_a'}, index={'idx_1':'index_a'})
複数変更したい場合
# 列名変更の場合
df_rename = df.rename(columns={'Col_1':'column_a', 'Col_2':'columns_b'})
# 行名変更の場合
df_rename = df.rename(index={'idx_1':'index_a', 'idx_2':'index_b'})
inplaceも使える
df_copy = df.copy()
df_rename = df_copy.rename(columns={'Col_1':'column_a'}, inplace=True)
解説
一つ目のシンプルな使い方。
まずはこれをなんとなく頭に入れておく。「.rename()あったな」くらいで覚えておくと良いかも。
二つ目の複数について。これは列名などを一気に変更する方法。columnsやindexは辞書で受け取るので、辞書の中身を増やせば、いくらでも変更できる。
これは処理に関係ないが、複数を一気に変更する場合は、あまり全てを関数の中に入れすぎない方が個人的にはおすすめ。なぜなら、関数の中身が増えてしまい、可読性が下がるから。
コードを読んでて、横にスクロールしないといけないと、結構ストレスなので。個人的な感想だけど、結構真理だと思っています。
最後のinplace。
inplaceはいきなり元のデータフレームを変更すると、warningが出たりするので、ちょっと邪魔になるので注意。それに元のデータフレームを変更してしまうと、その後の処理に諸々影響が出る可能性があるので、良くないと考えています。
データフレームの列名は変更して終わりということはほぼないので、inplaceは慎重に。エクセルで例えるとマスターは簡単に変更しない方が良いということ。作業用にコピーしてやったりする感覚なので、inplaceをする場合は、確実に.copy()を活用することをオススメします。
そのほかも引数がありますが、私はあまり使いません。列名変更したい処理なのであれば、あまり込み入ったことはせず、コード内のその行は、列名を変更することだけに絞った方が可読性が高くなりますので、オススメです。
参照サイト
安定のnkmk
まとめ
以上となります。
いかがでしたでしょうか。簡単な処理ですが、「あれ、エラー出ちゃった」ということもあると思いますので、その際は立ち返って、このサイトにまた戻ってみてもらえると嬉しいです。
簡単な処理とはいえ、侮るなかれ、ですね。簡単な処理ほど、可読性を意識しましょう。初心者は特に処理スピードの前に先輩や既存のコードなどから可読性を学んでいく方が、その後の伸びが違うように思います。
Pythonライフ、データ分析ライフを楽しんでいきましょう!
コメント