【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】 Series 型を dict(辞書型)に変換する方法。
Python で Series 型を dict(辞書型)に簡単に変換する方法を紹介します。 「
-
-
【Python】API を使って YouTube から動画情報を収集する方法。
API を使って YouTube から動画情報を収集してみたときのメモです。 OS は Lin
-
-
【Atomエディタ】Python 開発用にインストールしてみた。
Python でプログラミングするときの エディタ を探していたのですが、とりあえず Atom とい
-
-
【Google Colaboratory】クラウド上でPythonを使って機械学習を行う。
Python をブラウザ上で実行して、手軽に機械学習ができる環境「Google Colaborato
-
-
【matplotlib】 Python でヒストグラムの横軸と棒(ビン)の数を調整する方法。
Python の matplotlib を使ってヒストグラムを描画し、横軸の目盛りと棒(ビン)がそろ
-
-
【OpenCV】検出した顔画像部分を切り出す方法【Python】
OpenCV を使って、Python で画像の中から顔部分を切り出したときのメモです。 顔部分
-
-
【Python】pip3 で「cannot import name ‘main’」エラーが出たときの対処法。
Python でライブラリをインストールする際に、pipを使います。 Python2 と Py
-
-
【Python】Requests ライブラリを使って Web ページを取得してみた。
python の標準ライブラリ urllib を使っても Web ページの取得はできるのですが、Re
-
-
【Pandas】 DataFrame のインデックスを置き換える方法【Python】
今回は、Pandas の DataFrame型で、インデックス(index)を分かりやすいものに置き
-
-
【Python】機械学習のために SciPy・Matplotlib・scikit-learn をインストール。
Python で機械学習を行うために、Windows OS の python 2 系にライブラリ「S