【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 |
関連記事
-
-
【matplotlib】 Python で折れ線グラフを描く方法。
今回は、Python の matplotlib というライブラリを使って簡単に折れ線グラフを描く方法
-
-
【Anaconda】Prompt 上で Git コマンドを実行する方法。
Anaconda のコマンドプロンプト(Anaconda Prompt)上で、Git Hub からダ
-
-
【Python】漢字を分解するライブラリを使ってみた【部首分解】
Python で漢字を部首やさらに細かい部分に分解してくれるライブラリがあったので使ってみました。
-
-
【Linux】 ローカルに Python をインストールする方法。
今回は、Linux サーバに、root 権限なしで、ローカルに Python をインストールした方法
-
-
【Spyder】引数のあるスクリプトを実行する方法。
Python の統合開発環境(IDE)である Spyder では、簡単にスクリプトを実行できます。
-
-
【Python】API を使って Amazon の商品情報を収集する方法。
AmazonAPI ライブラリをインストール 以下のコマンドで python-amazon-sim
-
-
【Python】プログレスバーを表示させる【tqdm】
Python でスクリプトの実行時間が長くなると、進捗状況が知りたくなったので、標準出力にどのくらい
-
-
【Pandas】 DetaFrame の列ごとに演算する方法【Python】
今回は、DetaFrame の列ごとに平均や加算・減算なのど演算をし、結果を DetaFrame 型
-
-
【Pandas】 DataFrame と Series のデータ構造について【Python】
今回は、Python でデータ分析を行っていると必ず使う Pandas の DataFrame と
-
-
【Pandas】 DataFrame で2行の列ごとの差を計算する方法【Python】
今回は、Pandas の DataFrame で、2行間の列ごとの値の差を計算し、その結果を Dat