Pythonでcsvファイルを検索する(pandas)

ノウハウ
スポンサーリンク

 

 

csvファイルを扱うことができるPythonライブラリであるpandasを使って、csvファイルを検索する方法を備忘録として残しておきます。

 

目次

 

 

サンプルのcsvファイル

使い方をまとめる上で、以下の「sample .csv」という名称のcsvファイルをCドライブ直下に格納したことを想定します。

 

 

 

 

 

csvファイルを検索する

 

【サンプルコード】

##### 【csvファイルを検索する】 #####
import pandas

# csvファイルのロード
csvfile_path='C:/sample.csv'
dataframe = pandas.read_csv(filepath_or_buffer=csvfile_path,encoding="cp932")

# 「●×商店」で買ったものを検索
print('===== 「●×商店」で買ったものを検索 =====')
print(dataframe.query('お店 == "●×商店"'))

# 100円以上、300円未満の買ったものを検索
print('===== 100円以上、300円未満の買ったものを検索 =====')
print(dataframe.query('100 <= 価格 < 300'))

# 買った物に「フルーツ」が含まれているものを検索
print('===== 買った物に「フルーツ」が含まれているものを検索 =====')
print(dataframe.query('物.str.endswith("フルーツ")', engine='python'))

 

【実行結果】

===== 「●×商店」で買ったものを検索 =====
    ID         物   価格    お店       購入日
0    1       いちご  250  ●×商店  2019/1/1
1    2       リンゴ  100  ●×商店  2019/1/2
5    6  グレープフルーツ  100  ●×商店  2019/1/4
9   10      マンゴー  300  ●×商店  2019/1/6
11  12       メロン  600  ●×商店  2019/1/7
===== 100円以上、300円未満の買ったものを検索 =====
    ID         物   価格     お店       購入日
0    1       いちご  250   ●×商店  2019/1/1
1    2       リンゴ  100   ●×商店  2019/1/2
2    3       ブドウ  200    △△店  2019/1/3
4    5         桃  200  ××ストア  2019/1/4
5    6  グレープフルーツ  100   ●×商店  2019/1/4
10  11       バナナ  250  ××ストア  2019/1/7
12  13         梨  100  ××ストア  2019/1/8
===== 買った物に「フルーツ」が含まれているものを検索 =====
    ID         物   価格    お店       購入日
5    6  グレープフルーツ  100  ●×商店  2019/1/4
14  15   キウイフルーツ   50   △△店  2019/1/8

 

【説明】

  • dataframe = pandas.read_csv(filepath_or_buffer=csvfile_path,encoding="cp932")で「sample .csv」から有効なデータのみをDataFrameオブジェクトとして取得しています。
  • pandasのDataFrameオブジェクトの query()を使うことで、検索することができます。
  • 「●×商店」で買ったものを検索について
    • 検索条件として、'お店 == "●×商店"'とすることで、「お店」列の中で" ●×商店 "となる行を検索して、条件が一致する行のみ取得できます。
    • 【実行結果】は、お店が●×商店の行のみが取得できています。
  • 100円以上、300円未満の買ったものを検索について
    • 検索条件として、'100 <= 価格 < 300'とすることで、「価格」列の中で、100以上、300未満となる行を検索して、条件が一致する行のみ取得できます。
    • 【実行結果】は、価格列の中で、100以上、300未満の行が取得できています。
  • 買った物に「フルーツ」が含まれているものを検索について
    • 検索条件として、'物.str.endswith("フルーツ")'とすることで、「物」列の中で、フルーツが含まれている行を検索して、条件が一致する行のみ取得できます。
    • 【実行結果】は、「物」列の中で、フルーツが含まれている行が取得できています。
  • pandasのDataFrameオブジェクトのquery()の詳細については本家のAPI仕様書である<pandas.DataFrame.query>を参照してください。

 

 

 

 

関連情報

 

【pandasライブラリのまとめ】

 

【Pythonライブラリのまとめ】

 

 

 

 

 

以上!

コメント

タイトルとURLをコピーしました