たとえば、DataFrameであるdfのある列に同じ値を代入するとき、下記のように行数分の要素のリストを使います。
df[列名] = [同じ値, 同じ値, ..., 同じ値]
Name | Point | |
---|---|---|
0 | Alice | 17 |
1 | Bob | 24 |
2 | Carol | 29 |
df
の列Point
の全3行に30
を代入するには、下記のようにします。
df["Point"] = [30, 30, 30]
この記述方法は、もっと簡単にできます。
DataFrameのある列に、同じ値を代入するには、下記のように、1つの値を代入すればできます。
df[列名] = 同じ値
df["Point"] = 30
df
Name | Point | |
---|---|---|
0 | Alice | 30 |
1 | Bob | 30 |
2 | Carol | 30 |
このような「1つの値」をスカラーといいます。
列に代入できるのは、列と同じ要素数のリストのようなものか、スカラーだけです。
下記のように、要素数があってないと、ValueErrorになるので注意しましょう。
DataFrameの四則演算
「列を2倍した結果で更新する」シンプルな例を通して、同じ演算でもいろいろな方法があることを学びます。
Name | Point | |
---|---|---|
0 | Alice | 17 |
1 | Bob | 24 |
2 | Carol | 29 |
DataFrameのある列の値をすべて2倍にするには、下記のように、元の列の2倍を代入すればできます。
df[列名] = df[列名] * 2
列Point
を2倍にするには、以下のようになります。
df["Point"] = df["Point"] * 2
df
Name | Point | |
---|---|---|
0 | Alice | 34 |
1 | Bob | 48 |
2 | Carol | 58 |
下記のいずれの方法でも、列の値を2倍に更新できます。上の方がシンプルな書き方です。
df[列名] *= 2
df[列名] = df[列名] * 2
df[列名] = df[列名] + df[列名]
今回は、足し算の結果で列を更新してみましょう。本問では、列の全要素に1を加算します。
下記のdf
を例にします。
Name | Point | |
---|---|---|
0 | Alice | 17 |
1 | Bob | 24 |
2 | Carol | 29 |
DataFrameのある列のすべての要素に特定の数値を足すには、下記のようにします。
df[列名] += 数値
df["Point"] += 1
df
Name | Point | |
---|---|---|
0 | Alice | 18 |
1 | Bob | 25 |
2 | Carol | 29 |
df["Weight"] / df["Height"] ** 2 2乗のこと
コメント