DataFrameに値を代入する

たとえば、DataFrameであるdfのある列に同じ値を代入するとき、下記のように行数分の要素のリストを使います。

df[列名] = [同じ値, 同じ値, ..., 同じ値]
NamePoint
0Alice17
1Bob24
2Carol29

dfの列Pointの全3行に30を代入するには、下記のようにします。

df["Point"] = [30, 30, 30]

この記述方法は、もっと簡単にできます。

DataFrameのある列に、同じ値を代入するには、下記のように、1つの値を代入すればできます。

df[列名] = 同じ値
df["Point"] = 30
df
NamePoint
0Alice30
1Bob30
2Carol30

このような「1つの値」をスカラーといいます。
列に代入できるのは、列と同じ要素数のリストのようなものか、スカラーだけです。

下記のように、要素数があってないと、ValueErrorになるので注意しましょう。

DataFrameの四則演算

「列を2倍した結果で更新する」シンプルな例を通して、同じ演算でもいろいろな方法があることを学びます。


Name
Point
0Alice17
1Bob24
2Carol29

DataFrameのある列の値をすべて2倍にするには、下記のように、元の列の2倍を代入すればできます。

df[列名] = df[列名] * 2

Pointを2倍にするには、以下のようになります。

df["Point"] = df["Point"] * 2
df
NamePoint
0Alice34
1Bob48
2Carol58
下記のいずれの方法でも、列の値を2倍に更新できます。上の方がシンプルな書き方です。

df[列名] *= 2
df[列名] = df[列名] * 2
df[列名] = df[列名] + df[列名]

今回は、足し算の結果で列を更新してみましょう。本問では、列の全要素に1を加算します。

下記のdfを例にします。

NamePoint
0Alice17
1Bob24
2Carol29

DataFrameのある列のすべての要素に特定の数値を足すには、下記のようにします。

df[列名] += 数値
df["Point"] += 1
df
NamePoint
0Alice18
1Bob25
2Carol29
df["Weight"] / df["Height"] ** 2 2乗のこと

コメント

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