Home » Python » pandasの使い方 » pandasでDataFrameをスライスしてデータを抽出する

pandasでDataFrameをスライスしてデータを抽出する

動作検証バージョン:Windows 10 + Python 3.7.3 + pandas 0.24.2

「pandas 等間隔 抜取り」
という検索キーワードで、このサイト『インストラクターのネタ帳』へのアクセスがありました。

pandasを使って、偶数行のみや奇数行のみ、あるいは3行ごと、といった形でデータの抽出を行いたいということでしょう。

[スポンサードリンク]

pandasでデータを抽出するサンプルスクリプト

以下のスクリプトが参考になるはずです。

import pandas

df = pandas.read_csv(r'C:\temp\csv_sample_cp932.csv', encoding='cp932')

df_selected = df[::2]

for row in df_selected.values:
    print(row)

データを抽出するサンプルの挙動

以下のような、CSVファイル(csv_sample_cp932.csv)をCドライブのtempフォルダーに置いて、上記のスクリプトを実行してみましょう。

id,name,score
1,太郎,900
2,次郎,800
3,三郎,700
4,四郎,600
5,五郎,500
6,六郎,400
7,七郎,300

下図のとおり、奇数行だけを抽出できます。

スクリプトの、

df_selected = df[::2]

を、

df_selected = df[1::2]

に変更してから実行すれば、下図のように偶数行だけを抽出できます。

また、

df_selected = df[::3]

にしてから実行した場合、3行ごとにデータを抽出できます。

スライスはDataFrameでも有効

上述の、

df_selected = df[::2]
df_selected = df[1::2]
df_selected = df[::3]

は、dandasのDataFrameをスライスする記述です。

リストなどでおなじみのスライスを、pandasのDataFrameでも使えるというのが、素晴らしいと感じます。

最終更新日時:2019-06-25 06:46

[スポンサードリンク]

Home » Python » pandasの使い方 » pandasでDataFrameをスライスしてデータを抽出する

「pandasの使い方」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.