【Pandas】 loc・ilocで1行のみ Series ではなく DataFrame で抽出する方法。
公開日:
:
Python 1行抽出, DataFrame, DataFrameで取得, iloc, loc, pandas, Seriesではなく
Python の Pandas で DataFrame から loc や iloc を使って行を抽出するとき、通常、複数行の場合は DataFrame 型で、単一行(1行のみ)の場合は Series 型で返ってきます。
今回は、単一行(1行のみ)の場合でも DataFrame 型で抽出する方法を紹介します。
以下のような DataFrame(df) から 「.loc」 を使って1行だけ抽出することを考えます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
diff same same 0.480 0.520 diff 0.520 0.480 same 0.350 0.650 diff 0.490 0.510 same 0.440 0.560 same 0.650 0.350 same 0.290 0.710 same 0.360 0.640 same 0.480 0.520 same 0.330 0.670 same 0.460 0.540 same 0.570 0.430 same 0.380 0.620 same 0.280 0.720 same 0.250 0.750 same 0.240 0.760 same 0.390 0.610 same 0.580 0.420 same 0.300 0.700 same 0.320 0.680 same 0.400 0.600 same 0.420 0.580 same 0.230 0.770 diff 0.620 0.380 same 0.250 0.750 diff 0.520 0.480 same 0.290 0.710 same 0.170 0.830 same 0.220 0.780 same 0.240 0.760 ... ... same 0.240 0.760 same 0.260 0.740 same 0.220 0.780 same 0.410 0.590 same 0.290 0.710 same 0.270 0.730 same 0.210 0.790 same 0.200 0.800 same 0.340 0.660 same 0.230 0.770 same 0.390 0.610 diff 0.600 0.400 same 0.390 0.610 diff 0.490 0.510 same 0.410 0.590 same 0.370 0.630 same 0.690 0.310 same 0.530 0.470 same 0.240 0.760 same 0.340 0.660 same 0.370 0.630 same 0.240 0.760 same 0.510 0.490 same 0.500 0.500 same 0.500 0.500 same 0.260 0.740 same 0.170 0.830 same 0.250 0.750 same 0.380 0.620 same 0.510 0.490 |
以下のような条件式を指定して loc を用いて行を抽出します。
1 |
df[df['diff'] >= 0.60].loc['same'] |
これは、diff 列の値が 0.60 以上で、インデックスが same の行を抽出しています。
該当する行が1行しかないので、以下のように Series で返ります。
1 2 3 |
diff 0.610 same 0.390 Name: same, dtype: float64 |
これだと、len 関数を使って行数を数えるときに、2行として扱われてしまいます。
1行だけであっても DataFrame で返すようにするには、loc で与えるインデックスの値を以下のようにリストにします([]を付ける)。
1 |
df[df['diff'] >= 0.60].loc[['same']] |
無事に DataFrame で取得することができました。
1 2 |
diff same same 0.600 0.400 |
関連記事
-
-
【Python】API を使って YouTube から動画情報を収集する方法。
API を使って YouTube から動画情報を収集してみたときのメモです。 OS は Lin
-
-
【matplotlib】 Python でヒストグラムの横軸と棒(ビン)の数を調整する方法。
Python の matplotlib を使ってヒストグラムを描画し、横軸の目盛りと棒(ビン)がそろ
-
-
【Google Colaboratory】クラウド上でPythonを使って機械学習を行う。
Python をブラウザ上で実行して、手軽に機械学習ができる環境「Google Colaborato
-
-
python 2.7 を Windows 64bit OS にインストールした。
python 2.7 を Windows にインストールしたときのメモです。 Python に
-
-
【Anaconda】Prompt 上で Git コマンドを実行する方法。
Anaconda のコマンドプロンプト(Anaconda Prompt)上で、Git Hub からダ
-
-
【Python】Requests ライブラリを使って Web ページを取得してみた。
python の標準ライブラリ urllib を使っても Web ページの取得はできるのですが、Re
-
-
【OpenCV】画像の顔部分を検出する方法【Python】
OpenCV を使って、Python で画像から顔部分の検出を行ったときのメモです。 Anac
-
-
【Python】漢字を分解するライブラリを使ってみた【部首分解】
Python で漢字を部首やさらに細かい部分に分解してくれるライブラリがあったので使ってみました。
-
-
【Pandas】 DataFrame と Series のデータ構造について【Python】
今回は、Python でデータ分析を行っていると必ず使う Pandas の DataFrame と
-
-
【Python】Windows で ライブラリ(NumPy) をインストールする方法。
Windows の Python(2.X系)で NumPy をインストールしようと思ったら、そもそも