Python
 Computer >> コンピューター >  >> プログラミング >> Python

【Python・Pandas】apply関数で行ごと・列ごとに処理を適用する方法

データ分析をしていると、データフレームの軸(axis)に沿って特定の関数や処理を適用したい場面によく出くわします。そんなときに便利なのが、Pandasのapply関数です。

axis引数を指定しない場合、デフォルトでは列方向(column-wise)の操作が適用され、各列がひとつの配列として扱われます。一方、axis=1を指定すると、操作は行方向(row-wise)で実行されます。

apply関数は、ドット演算子(.)を使ってデータフレームに対して呼び出します。以下に具体的な例を示します。

コード例

import pandas as pd
import numpy as np

my_data = {'Age': pd.Series([45, 67, 89, 12, 23]),
           'value': pd.Series([8.79, 23.24, 31.98, 78.56, 90.20])}

print("The dataframe is :")
my_df = pd.DataFrame(my_data)
print(my_df)

print("The description of data is :")
print(my_df.apply(np.mean))

実行結果

The dataframe is :
    Age   value
0   45    8.79
1   67   23.24
2   89   31.98
3   12   78.56
4   23   90.20
The description of data is :
Age      47.200
value    46.554
dtype: float64

コードの解説

  • まず、必要なライブラリである pandasnumpy をインポートし、それぞれ pdnp というエイリアス名を付けて使いやすくしています。

  • 次に、キーと値のペアからなる辞書を作成します。ここで値として指定しているのは、実際にはSeriesというデータ構造です。

  • 作成した辞書は、pandasライブラリの DataFrame 関数に引数として渡され、データフレームが生成されます。

  • 生成されたデータフレームを print 関数でコンソールに出力して確認します。

  • apply(np.mean) を呼び出すことで、各列(デフォルトのaxis=0)に対してNumPyの平均値計算が適用されます。

  • その結果、「Age」列の平均が47.200、「value」列の平均が46.554としてコンソールに出力されます。

axis引数の挙動まとめ

指定内容動作
axis=0(デフォルト)に対して関数が適用される
axis=1に対して関数が適用される

なお、平均値だけでなく、np.sum(合計)、np.max(最大値)、lambda式による独自の処理なども同様にapply関数へ渡せるため、柔軟なデータ加工が可能です。

  1. PythonでpandasのDataFrameをCSVファイルに書き込む方法【to_csv()の使い方】

    pandasのDataFrameをCSVファイルに出力する基本 PythonでpandasのDataFrameをCSVファイルに書き込むには、to_csv()メソッドを使用します。このメソッドは、DataFrameの内容をそのままCSV形式で保存できる、最もシンプルで一般的な方法です。 まずはサンプルデータとして、リストを値にもつ辞書を作成しましょう。 # リストの辞書を定義 d = {Car: [BMW, Lexus, Audi, Mercedes, Jaguar, Bentley], Date_of_purchase: [2020-10-10, 2020-10-12, 2020-

  2. Python Pandasでデータフレームの列の値をX軸ラベルとして設定する方法

    PythonのPandasでデータフレームの列の値をX軸ラベルとして設定するには、plot()メソッドの引数にxticksを指定します。これにより、データの値をそのまま目盛りラベルとして表示できるため、グラフがより読みやすくなります。手順図のサイズを設定し、サブプロット間および周囲の余白(パディング)を調整します。Pandasを使って、column1というキーを持つデータフレームを作成します。plot()メソッドでデータフレームをプロットし、column1の値をX軸ラベルとして指定します。図を表示するには、show()メソッドを使用します。コード例import pandas as pd fro