動作検証バージョン:Windows 10 + Python 3.7.3 + pandas 0.24.2
「pandas 等間隔 抜取り」
という検索キーワードで、このサイト『インストラクターのネタ帳』へのアクセスがありました。
pandasを使って、偶数行のみや奇数行のみ、あるいは3行ごと、といった形でデータの抽出を行いたいということでしょう。
[スポンサードリンク]
pandasでデータを抽出するサンプルスクリプト
以下のスクリプトが参考になるはずです。
import pandas
print(row)
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をスライスしてデータを抽出する