DataFrameに格納されているオブジェクトにアクセスしたいです。
mapとlambdaを使うことで、
DataFrame内のオブジェクトにアクセスすることができるぞ。
✔️ 本記事のテーマ
DataFrameオブジェクトにmapとlambdaでアクセスする方法
✔️ 読者さんへの前置きメッセージ
本記事は「DataFrameオブジェクトとmapとlambdaの使い方」について書いています。
この記事を読むことで
「mapとlambdaによってDataFrameオブジェクトの情報を取得する方法」
について理解できます。
DataFrameはデータ分析に使われるPandasライブラリのオブジェクトです。
DataFrameはmapとlambdaと組み合わせることで様々なデータを取得することができます。
本記事では、DataFrame, map, lambda を組み合わせる方法について解説します。
それでは、解説していきましょう。
DataFrameの構造
DataFrame は表形式でデータを保持します。
以下のように、各引数に list を渡すことで、表形式でデータを定義することができます。
import pandas as pd
class Person:
def __init__(self, name, age, height):
self.name = name
self.age = age
self.height = height
ids = [1, 2, 3, 4, 5]
names = ['太郎', '次郎', '三郎', '四郎', '五郎']
people = [
Person('太郎', 20, 165),
Person('次郎', 21, 170),
Person('三郎', 22, 175),
Person('四郎', 23, 180),
Person('五郎', 24, 185)
]
sample_df = pd.DataFrame(
{'id': ids, 'name': names, 'person': people}
)
このようなコードを実行すると sample_df には下記画像のようなデータが格納されます。
people 列には Person オブジェクトが格納されています。
この記事では、この Person オブジェクトに対して、mapとlambdaで処理をかけていきます。
DataFrameとmapとlambdaを組み合わせる
では、DataFrameとmapとlambdaを組み合わせについて解説していきます。
例えば、
sample_df に格納されている Person オブジェクトの age の合計値を取得する
みたいなケースでDataFrameとmapとlambdaの組み合わせが使われます。
求めたい数字は 20 + 21 + 22 + 23 + 24 = 110 になります。
これをコードで算出すると以下のようになります。
sum_age = sample_df.person.map(lambda p: p.age).sum()
print(sum_age)
# 110
解説すると以下の書き方で書くことができます。
対象DataFrame.カラム名.map(lambda p: p.プロパティ名).sum()
この式で「対象DataFrame」の「カラム名」に格納されているオブジェクトの「プロパティ名」の「合計値」を算出することができます。
- 「対象DataFrame」
- 「カラム名」
- 「プロパティ名」
を変えることで様々な情報を取得することができます。
例えば、年齢ではなく身長の合計値を求めるなら以下のようなコードになります。
sum_height = sample_df.person.map(lambda p: p.height).sum()
print(sum_height)
# 875
ちなみに、最後の関数を mean() にすると合計値ではなく平均値を算出することができます。
sum_age = sample_df.person.map(lambda p: p.age).mean()
print(sum_age)
# 22.0
このように、DataFrameで大量のデータを保持しておくことで、
mapやlambdaを組み合わせることで様々な情報を取得することができます。
Pandas や DataFrame を学ぶための1冊
今回は、PythonからExcelファイルへ書き込む方法について解説しました。
記事中で解説したPandasはデータサイエンスの世界でよく使われるライブラリです。
PandasやDataFrameの使い方についてスキルをつけるなら、
おそらく以下の書籍が一番良いです。
この書籍は Pandasライブラリ に初めて触れる方にも分かりやすく書かれています。
ライブラリの知識だけでなく、実際のユースケースで活用する方法まで、
実践的なスキルを身に付けることができます。
Amazon 上で試し読みもできるのでぜひ一読してみて下さい。
また、Pythonについて基礎から学ぶのであれば、オンラインスクールがオススメです。
オンラインスクールで学習すると、講義も分かりやすく、
サポート体制もしっかりしているので、これからPythonを学ぶ人にもオススメです。
オンラインで無料レッスンを体験することもできるので、
自分にあっているかどうかを確かめることができます。
オススメは以下の3つです。
どのスクールも無料体験が用意されているので、
契約前に自分に最適なスクールを探すことができるでしょう。
✔️オススメのプログラミングスクール ベスト3
- 未経験からIT業界へ転職なら【DMM WEBCAMP】
※ROLANDさんがプロモーターを務める有名スクールです。無料体験の内容も充実していて人気です。 - プログラミングのオンラインスクールCodeCamp
※ここも有名なスクールです。サポート体制がしっかりしているので安心です。 - 3ヶ月間のプログラミングスクール【Tech Boost】
※比較的新しいスクールですが、そのクオリティの高さから伸びてきているスクールです。
プログラミングスクールについては「プログラミングスクールで失敗しないためには【オススメベスト3も紹介】」の記事でも紹介しています。
気になった方はぜひチェックしてみて下さい〜!
コメント