Python/PandasライブラリでExcelファイルやcsvファイルをデータベースのように扱う
前回、PythonでExcelファイルへの読み書きについて書きました。
Pandasというライブラリを使うとExcelファイルやcsvファイルをデータベースのように扱えるので便利です。基本的な使い方を紹介します。
使用したのは前回も使った以下のExcelファイルです。ExcelファイルをLibreOfficeで開いたものです。ファイル名は「名簿.xlsx」。
[ad#top-1]
Pandasのインストール
pipコマンドで一発でインストール可能です。
$ pip install pandas
Excelファイルまたはcsvファイルの読み込み
Excelファイルを読み込む場合は以下のとおりです。
import pandas as pd fname = "名簿.xlsx" sname = "Sheet1" book = pd.read_excel(fname, sheetname=sname) print(book)
csvファイルの読み込みは以下の通りとなります。
import pandas as pd name = "名簿.csv" book = pd.read_csv(fname) print(book)
こちらを実行すると以下の通り全行のデータが現れます。
いろいろな抽出条件
ソーティング
年齢順に昇順に並び替え book = book.sort_values(by="年齢", ascending=True)
検索条件
#年齢30より上を取得 book = book.query("年齢 > 30")
任意の位置を取得
book = book.loc[3:4] #index3から4を表示 book = book.loc[3:] #index3以降を表示
データのサイズを取得
print(book.shape) #データのサイズ print(book.shape[0]) #データの行数
1行追加して別のExcelファイルに保存する
データフレームを作成してそれを追加した後、別のout.xlsxというExcelファイルに保存する方法です。
import pandas as pd fname = "名簿.xlsx" sname = "Sheet1" book = pd.read_excel(fname, sheetname=sname) df = pd.DataFrame(index=[], columns=['ID', '名前', '年齢']) se = pd.Series([11, 'hoge', 66], index=df.columns) book = book.append(se, ignore_index = True) book.to_excel("out.xlsx", sheet_name="test") print("OK")
出力したExcelファイルを見てみると、左端に余計なindex行が入ってしまうことと、なぜか罫線が入ってしまいます。元ファイルではなかったのですが…。
元ファイルにID列があったのですが、項目名(ID)を空欄にして0から開始すれば、この問題は解消します。
↓こういうファイルにしておけば良かったってこと。
[ad#ad-1]
スポンサーリンク