DataFrame – 列の操作

概要

DataFrameの列の操作をまとめる。

以下、次のDataFrameを使う。

列の参照

DataFrameで列名を直接指定

1つの列を指定

DataFrameで直接列名を指定するとSeriesオブジェクトが得られ、リストやndarrayにも変換できる。

ファンシー・インデックスによる複数列の指定

DataFrameで直接列名を指定する際に列名のリストを渡すと、その要素の列が並んだDataFrameが返される。

locによる列の指定

1つの列の指定

locで全行のスライス':'とすることで、列名を指定して列を取り出すことができる。結果はSeriesオブジェクト。

スライスによる連続した列の指定

列名にもスライスを使って連続した列を参照することができ、複数列の場合はDataFrameが返される。

ファンシーインデックスによる複数列の指定

locでもファンシーインデックスを使うことができて、個別の列を組み合わせたDataFrameを得ることができる。

列の追加

DataFrameで直接列名を指定して追加

DataFrameに新たな列名を指定して末尾に列を追加。列にarray_likeではなく数値を指定すると、列の全ての要素が同じ数値で埋められる。

locでスライス指定して追加

全行をスライス指定、新たな行名を指定して末尾に列を追加。

assignメソッドによる追加

assignメソッドで末尾に追加する場合、列名は文字列("列名")ではなく、直接「列名=列」で指定する。assignメソッドは元のオブジェクトは変更せず、新たなDataFrameを生成して返す。

insertメソッドによる途中への追加

insertメソッドは(挿入する列位置、"列名"、挿入する列)で挿入する。

列の更新

DataFrameで列名を直接指定

1つの列を指定

DataFrameで列名を直接指定して、その列に新たな列を代入する。代入する列は縦ベクトルでなくてもよく、1次元のリストや配列でよい。

ファンシーインデックスによる複数列の指定

ファンシーインデックスで複数列をリストで指定し、その列数と同じ列数のデータを与えて更新する。

locによる列名・スライスの指定

1つの列の指定

locで全行のスライスと1つの列名を指定して列を更新。

スライスによる連続した列の指定

スライスで連続した列を指定して一括して更新することができる。その場合、指定されたDataFrameの形状に合った次元・次数のデータを与える必要がある。

ファンシーインデックスによる複数列の指定

ファンシーインデックスも使うことができて、この場合も形状に合った次元・次数のデータを与える必要がある。

列の削除

例題のデータ

以下の2つのデータを使って、列番号指定の場合と列名指定の場合を確認する。

1列の削除

drop()メソッドの引数に削除する列の列番号とaxis=1を指定して削除(axis指定の方向に注意)。

第1引数の列指定はlabels=1labels="one"のように指定してもよい。

複数列の削除

複数列を削除する場合はリストで指定。

連続した列の削除

連続した列を削除する場合はリストの内包表記で。

文字列の列名の場合は、泥臭いが以下の方法か。

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です