DataFrame内のオブジェクトにmapとlambdaでアクセスする

DataFrame内のオブジェクトにmapとlambdaでアクセスするPandas
ゆうすけ
ゆうすけ

DataFrameに格納されているオブジェクトにアクセスしたいです。

資格マフィア
資格マフィア

mapとlambdaを使うことで、
DataFrame内のオブジェクトにアクセスすることができるぞ。

 

✔️ 本記事のテーマ

 DataFrameオブジェクトにmapとlambdaでアクセスする方法

 

✔️ 読者さんへの前置きメッセージ

本記事は「DataFrameオブジェクトとmapとlambdaの使い方」について書いています。

 

この記事を読むことで
「mapとlambdaによってDataFrameオブジェクトの情報を取得する方法」
について理解できます。

 

DataFrameはデータ分析に使われるPandasライブラリのオブジェクトです。

 

DataFrameはmapとlambdaと組み合わせることで様々なデータを取得することができます。

 

本記事では、DataFrame, map, lambda を組み合わせる方法について解説します。

 

それでは、解説していきましょう。

 

DataFrameの構造

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 には下記画像のようなデータが格納されます。

DataFrameの構造画像

 

people 列には Person オブジェクトが格納されています。

 

この記事では、この Person オブジェクトに対して、mapとlambdaで処理をかけていきます。

 

DataFrameと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

プログラミングスクールについては「プログラミングスクールで失敗しないためには【オススメベスト3も紹介】」の記事でも紹介しています。


気になった方はぜひチェックしてみて下さい〜!

コメント

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