3
0

More than 3 years have passed since last update.

DataFrameから、1つの列をDataFrameで取得する

Last updated at Posted at 2020-03-11

わかりにくいタイトルになってしまいましたが、そのままの記事です。汗

結論的には、
ブラケット(角括弧)によるアクセスにおいて
ブラケットが1つだとSeries,ブラケットを重ねるとDataFrameとして取り出せます。

#Seriesで取れる
df["col"] # df.colも同様

#DataFrameで取れる
df[["col"]]

Seriesで取り出したものをDataFrameへ変換することも可能ですが、ブラケットを重ねるのがお手軽です。

複数列を指定して取得する場合は、ブラケットを重ねることが必須となので必ずDataFrameで取れます。

df[["col1", "col2", "col3"]] #DataFrameで取れる

なお、Seriesで取れてしまうことで都合が悪いケースとしては、sklearnの予測モデルにインプットする場合が挙げられます。
1変数でモデルを作るときに、Seriesでインプットすることで次のようなエラーが出力されます。

ValueError: Expected 2D array, got 1D array instead:
~~
Reshape your data either using array.reshape(-1, 1) ~~

以上です。

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0