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('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をスライスしてデータを抽出する

TrackBack:0

TrackBack URL

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

「pandas」の記事一覧

検索


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

.