はじめに
先日、あるDataFrameから1行を抜き出して、1行だけのDataFrameを作りたいシーンに直面しました。
1カラムを抜き出すといえば、df['col_1']
といった方法を思いつきがちですが、これではSeries型になってしまい、DataFrame型に変更するのに、もうひと手間かかってしまいます。
iloc
メソッドを使えば、いきなりDataFrame型にできますが、他にどういった方法があるのか調べて、めっちゃ簡単な方法があったで、共有します。
いきなり結論
サクッと動作確認
いきなり結論です。
下の実行ボタンを押すと動作確認ができます。
また、コードを変更して実行することもできるので、色々試してもらえると嬉しいです。
解説
DataFrameから1カラムを抜き出す方法として、初歩の初歩として使われるのが、res_1
の方法です。
しかし、先述の通りこの方法だとSeries型になってしまいます。
今回は、DataFrame型として抜き出したいということで、調べてみると以下の方法がありました。
res_2 = df[['col_2']]
15行目でtypeしている通り、この方法であればDataFrame型で抜き出すことができます。
[]
ではなくて、[[]]
とするなんて、なんだかハックっぽくて良いですね。笑
おまけ
いつも使っているlocメソッドを使った場合
res_3 = df.loc[:, 'col_2']
上記のような形です。
これであれば、Series型ではなくDataFrame型で抽出することが可能です。
まあ、これで良いじゃないかと言われればそうかもしれませんが。。。
さいごに
今日は、DataFrameから1カラムのDataFrameを抽出する方法について、記事にしました。
最後まで読んで頂いて、ありがとうございました!