pandasを用いてデータ加工を行う際、関数「apply」は便利です。
簡単に使い方を記載します。

[前提] データ準備

下記のデータフレーム(列: a, b)を用意し、それを入力として加工を行ってみます。

import pandas as pd

# data
LEN = 5
data = {
    "a": [i for i in range(LEN)],
    "b": [(i * 100) for i in range(LEN)],
}
df = pd.DataFrame(data)
df

applyを用いてデータ加工

①入力: 1列、出力: 1列

シンプル「第一引数に関数(ここではlambda)を設定」すれば良いです。
※下記は、a列の値に5を足す場合。

# [加工] input: 1列, output: 1列
df["a"].apply(
    lambda a_val: a_val + 5
)

②入力: 複数列、出力: 1列

上記①に加え、「axis=1」を設定します。
そうすることで、第一引数の関数において、入力(row)が「1行分の辞書」と見なされます。
※下記は、a列とb列を足す場合。

# [加工] input: 複数列, output: 1列
df.apply(
    lambda row: (row["a"] + row["b"]),
    axis=1,
)

③入力: 複数列、出力: 複数列

上記②に加え、「result_type=”expand”」を設定します。
※下記は、(a列 + b列)と(b列 – a列)を同時に算出する場合。

# [加工] input: 複数列, output: 複数列
df.apply(
    lambda row: {
        "sum": (row["a"] + row["b"]),
        "diff": (row["b"] - row["a"])
    },
    axis=1,
    result_type="expand",
)

By clear

データエンジニア・機械学習・分析等を主とし、Webアプリ開発も行っているフリーランスです。