環境システム株式会社公式HP

〒660-0083 兵庫県尼崎市道意町7-1-3
尼崎リサーチ・インキュベーションセンター512

アイコン06-6657-5130

アイコンsales@hydrolab.co.jp

お問い合わせ

アイコン06-6657-5130

アイコンsales@hydrolab.co.jp

お問い合わせ

蛇使いな彼女BLOG

【第14回】 ライブラリ(pandas)の使い方④―ilocを使った抽出

2020.07.02

今回は前回出した問題、
 『ilocを使ってdfから2行目と3行目を取り出すには???』

 この答と間違い例を紹介します。

今回は2行目と3行目だけなので範囲指定する方法と復数行を指定する方法が使えます。


□正解↓

■間違い例↓

以下に正解と間違いを比べながらちょっとだけ解説しますね。

※前回書き忘れてましたが、Pythonで配列を扱う場合スタートは1ではなく0始まりです。
(繰り返し構文を書くときや、配列生成するときにも共通します)
なので、任意のindexが1からスタートしている場合でも抽出の際、行番号は0と指定します。


行番号  index
0 ・・・1行目
1 ・・・2行目
2 ・・・3行目
3 ・・・4行目



 ■解説1

範囲指定して抽出する方法についてなぜ正解がdf.iloc[2:4]でdf.iloc[2:3]が間違いなのか?

iloc[2:3] の意味は2行目から3行目までではなく、行番号で数えて2行目から3行目未満です。

なので

iloc[2:3]2行目から3行目未満の意味間違い
iloc[2:4]2行目から4行目未満の意味正解○


 ■解説2

行列指定して抽出する場合iloc[行番号,列番号] とコンマで区切って指定します。

今回のように複数行抽出したい場合はiloc[[行番号,行番号],列番号] と行番号のスペースを更に括弧で括って記載します。
(複数列の場合も同じ)


ということで

iloc[2,3]2行目、3列目→ 間違い✕
iloc[[2,3],:]2行目と3列目、すべての列正解○

と、まあこんな感じなんですが

正直私もよくあやふやになってエラー表示くらうことがあるので、実際にコーディングしていく中で徐々に覚えていくのが一番いいんじゃないかなーと思う!

pagetop