1. CSVファイルを準備する
適当にcsvファイルを作って下さい。
サンプルでsample.csvを作りました。
id | name | price | stock |
---|---|---|---|
1 | 多分そいつ、今ごろ台所でパフェとか食ってるよ。 | 1,210 | 0 |
2 | AISFA リュック メンズ リュックサック | 5,598 | 1 |
3 | 除湿機 アイリスオーヤマ サーキュレーター衣類乾燥除湿機 | 16,798 | 0 |
4 | カレンの台所 (サンクチュアリ出版) | 1,540 | 1 |
2. CSVファイルから特定のキーワードを含んだセルのみを抽出するpythonファイルを作る
先にそのpythonファイルのコードを示します。
test.py
import csv
keyword = '台所'
l = []
with open('sample.csv') as f:
reader = csv.reader(f)
for row in reader:
for x in row:
if keyword in x:
l.append(x)
print(l)
まずpythonファイルでcsvファイルを読み込みます。
やり方の参考ページは以下です。
with open('sample.csv') as f:
reader = csv.reader(f)」がそれです。
sample.csvはpythonファイル(test.py)と同じ階層にあるので、pathはファイル名だけでいいです。「reader」にcsvファイルのデータが入ります。
それをfor文で取り出します。
「if keyword in x:」でkeywordを含むセルを取り出し、リストのlに入れてます。
keywordは'台所'なので、lには以下が入ります。
['多分そいつ、今ごろ台所でパフェとか食ってるよ。', 'カレンの台所 (サンクチュアリ出版) ']
文字列の抽出は以下が参考ページです。
3. 抽出したデータをエクセルファイルに書き出す
pythonのライブラリpandasを使ってエクセルを操作します。
まず、仮想環境を作ります。
この後、ライブラリをインストールするので。
下のコマンドを打ってください。
python3 -m venv myvenv
source myvenv/bin/activate
これで仮想環境ができました。
ターミナルの一番左に(myvenv)と入っていれば、仮想環境に入れてます。
ライブラリをインストールします。
pip3 install openpyxl
pip3 install pandas
pip3 install xlrd
そしたら、コードを書いていきます。
test.py
import csv
import openpyxl
import pandas as pd
keyword = '台所'
l = []
with open('sample.csv') as f:
reader = csv.reader(f)
for row in reader:
for x in row:
if keyword in x:
l.append(x)
## excel
pandas_excel = "pandas_1.xlsx"
data = l
df = pd.DataFrame(data)
df.to_excel(pandas_excel, sheet_name="sheet1", index=False, header=False)
このファイルを実行すると、以下のエクセルファイルが新規作成されます。
エクセルの列幅や行の高さを揃えたいなどは、下記を参考にして下さい。
pandasで値を操作するやり方は、下記を参考にして下さい。
以上、大雑把ですが、csvファイルから特定のキーワードを抽出して、excelへの転写まで行いました。