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ライブラリのまとめ】
以上!
コメント