Pythonのapplymapを使ってデータフレーム内の全列の要素の長さを出力する方法
pandasのデータフレームに含まれるすべての列の要素の長さを一括で求めたい場面はよくあります。本記事では、df.applymapとラムダ関数(lambda)を組み合わせることで、各セルの文字数を簡単に出力する方法を解説します。
実行結果のイメージ
データフレーム内のすべての列の要素の長さを求めると、次のような結果が得られます。
Dataframe is:
Fruits City
0 Apple Shimla
1 Orange Sydney
2 Mango Lucknow
3 Kiwi Wellington
Length of the elements in all columns
Fruits City
0 5 6
1 6 6
2 5 7
3 4 10解決の手順
この問題を解決するには、以下の手順に従います。
データフレームを定義する
df.applymap関数の中でラムダ関数を使用し、すべての列の要素の長さを計算する
df.applymap(lambda x:len(str(x)))
サンプルコード
より理解を深めるために、以下のコードを確認してみましょう。
import pandas as pd
df = pd.DataFrame({'Fruits': ["Apple","Orange","Mango","Kiwi"],
'City' : ["Shimla","Sydney","Lucknow","Wellington"]
})
print("Dataframe is:\n",df)
print("Length of the elements in all columns")
print(df.applymap(lambda x:len(str(x))))出力結果
Dataframe is:
Fruits City
0 Apple Shimla
1 Orange Sydney
2 Mango Lucknow
3 Kiwi Wellington
Length of the elements in all columns:
Fruits City
0 5 6
1 6 6
2 5 7
3 4 10補足:新しいpandasバージョンでの注意点
pandas 2.1以降では、DataFrame.applymapは非推奨(deprecated)となり、代わりにDataFrame.mapの使用が推奨されています。最新の環境では、以下のように書き換えることで同じ結果が得られます。
df.map(lambda x: len(str(x)))
このように、要素ごとに関数を適用できるapplymap(またはmap)を使えば、データフレーム全体の文字列の長さを効率的に取得できます。
-
【Python】文字列の長さに基づいてリストを並べ替える方法
文字列のリストがあり、その長さを基準にリストを並べ替えたいとします。つまり、短い文字列から長い文字列へと昇順に整列させる必要があります。これを実現するには、独自のアルゴリズムを書くか、Pythonの組み込みメソッドであるsort()や関数sorted()を、キー(key)引数と組み合わせて使用するのが便利です。実行例まず、どのような動作になるのか例で確認しましょう。入力: strings = [hafeez, aslan, honey, appi] 出力: [appi, aslan, honey, hafeez]それでは、sorted(key)関数とsort(key)メソッドを使ったプログラム
-
Pythonで2つのリストの共通要素をすべて出力する方法
2つのリストが与えられたとき、両方のリストに共通して含まれるすべての要素を出力するPythonプログラムを紹介します。この問題は、セット(set)型の集合演算を使うことで、シンプルかつ効率的に解決できます。 実行例 入力 : L1 = [5, 6, 7, 8, 9] L2 = [5, 13, 34, 22, 90] 出力 : {5} 説明 上記の例では、2つのリストのどちらにも存在する要素は「5」だけなので、出力は {5} となります。 アルゴリズム 処理の手順は以下のとおりです。 ステップ1 : ユーザーから入力を受け取り、2つのリストを作成する。 ステップ2 : 各リ