【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】 DataFrame の特定の列で出現回数をカウントして降順でソートする方法。
Python で DataFrame 型の特定の列を指定して、対象列の文字列の出現回数をカウントして
-
-
【Atomエディタ】Python 開発用にインストールしてみた。
Python でプログラミングするときの エディタ を探していたのですが、とりあえず Atom とい
-
-
【Pandas】 DataFrame のある列の最大値を含む行のインデックス値を取得する方法。
今回は、Pandas の DataFrame において、ある列で最大値を求めて、その最大値をもつ行に
-
-
【Spyder】引数のあるスクリプトを実行する方法。
Python の統合開発環境(IDE)である Spyder では、簡単にスクリプトを実行できます。
-
-
【Pandas】 DetaFrame の列ごとに演算する方法【Python】
今回は、DetaFrame の列ごとに平均や加算・減算なのど演算をし、結果を DetaFrame 型
-
-
【Python】プログレスバーを表示させる【tqdm】
Python でスクリプトの実行時間が長くなると、進捗状況が知りたくなったので、標準出力にどのくらい
-
-
python 2.7 を Windows 64bit OS にインストールした。
python 2.7 を Windows にインストールしたときのメモです。 Python に
-
-
【Pandas】 DataFrame で2行の列ごとの差を計算する方法【Python】
今回は、Pandas の DataFrame で、2行間の列ごとの値の差を計算し、その結果を Dat
-
-
【Python】時系列データ(為替データ)をグラフ表示してみた。
今回は、pandas・matplotlib ライブラリを使って、時系列データ(為替データ)をグラフ表
-
-
【Python】API を使って YouTube から動画情報を収集する方法。
API を使って YouTube から動画情報を収集してみたときのメモです。 OS は Lin



















