【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 |
関連記事
-
-
【Pandas】 DataFrame で2行の列ごとの差を計算する方法【Python】
今回は、Pandas の DataFrame で、2行間の列ごとの値の差を計算し、その結果を Dat
-
-
【Python】OpenCV を使って顔画像を検出してみた。
OpenCV のインストール Numpy のインストール [crayon-657064e42
-
-
【Python】機械学習のために SciPy・Matplotlib・scikit-learn をインストール。
Python で機械学習を行うために、Windows OS の python 2 系にライブラリ「S
-
-
【Python】Wikipedia のデータセットを取得し、文章を抽出する方法。
Wikipedia のデータセットを取得し、Python のライブラリを用いて文章を抽出する方法を紹
-
-
【Python】 複数の辞書型の同じ key を持つ value を計算に用いる方法。
Python で、複数の辞書型を読み込んで、同じキー(key)を持つ数値(value)を計算に使う方
-
-
python 2.7 を Windows 64bit OS にインストールした。
python 2.7 を Windows にインストールしたときのメモです。 Python に
-
-
【Anaconda】Prompt 上で Git コマンドを実行する方法。
Anaconda のコマンドプロンプト(Anaconda Prompt)上で、Git Hub からダ
-
-
【Linux】 ローカルに Python をインストールする方法。
今回は、Linux サーバに、root 権限なしで、ローカルに Python をインストールした方法
-
-
【Python】Requests ライブラリを使って Web ページを取得してみた。
python の標準ライブラリ urllib を使っても Web ページの取得はできるのですが、Re
-
-
【Python】 Series 型を dict(辞書型)に変換する方法。
Python で Series 型を dict(辞書型)に簡単に変換する方法を紹介します。 「