Python in Excelにおけるpandas DataFrameの基本

pandas python 1

これまでの記事で、Excelワークブック内で基本的な Python コードを使う方法や、xl 関数を使ってワークブックの内容を Python のロジックに取り込む方法を見てきました。

※以下の記事がPython in Excel導入記事です。ご参照ください。

初心者向けPython:Excel作業を自動化したい人のためのPython in Excel – Lean Data Office

初心者向けPython in Excel : データ型について解説 – Lean Data Office

初心者向け Python in Excel:xl() 関数でセルの値をPythonから扱う方法 – Lean Data Office

Python in Excel:変数が使える順番を理解しよう – Lean Data Office

Python in Excelのデバッグ入門:よくあるエラーと対処法 – Lean Data Office

この記事では、まずは pandas の DataFrame の基本を説明したいと思います。

DataFrame とは、pandas ライブラリによって提供される 2 次元の表形式データ構造です。Excel が提供するデータテーブルと非常によく似ていますが、データ操作を行ううえで非常に適した、多くの組み込み機能を備えています。

DataFrame では、各行が個々のデータの集合を表し、各列がそのデータの変数や特徴を表します。各列には一意の名前が付いており、行は整数のインデックス値でアクセスされます。

DataFrame を使うと、データへのアクセスや操作が非常に簡単になり、Excel だけでは簡単にできないような、幅広いデータ操作をサポートしています。Excel のデータテーブルと比べると多少複雑ではありますが、この章の後半で見るように、DataFrame の API は比較的シンプルで、学びやすく使いやすいものです。

DataFrame は、プログラムによっても含め、さまざまな方法で作成できます。たとえば、複数のプロパティを持つオブジェクトがあり、

image

それぞれのプロパティがデータ値のリストを持っている場合、そのオブジェクトを DataFrame コンストラクタに渡すだけで、簡単に DataFrame を作成できます。そして、特定の列でデータを並べ替える(ソートする)といった操作も簡単に行えます。

image

その結果、オブジェクトの各プロパティが列名に対応し、各行はそれぞれのプロパティが参照しているリスト内のデータに対応した DataFrame が作成されます。

データを DataFrame に取り込めば、さまざまな操作が可能になります。複数の列でデータをソートしたり、

df.sort_values('Name')

groupby 関数を使って指定した列でグループ化したりできます。

df.groupby('city')

query 関数を使えば、式を使って DataFrame 内のデータを検索できますし、

df.query("Age >=30")

filter 関数でデータを絞り込むこともできます。

df.filter(items=['Name','City'])

また、apply 関数を使えば、任意の関数を DataFrame のデータに適用することができます。ここでは、city 列の各都市名に対して string.lower 関数(小文字に変換する関数)を適用しています。

df['City'].apply(str.lower)

さらに、merge 関数を使って複数の DataFrame を結合することも可能です。

df3 = df.merge(df2)

これらの例は以降の記事で順に見ていきますが、Python の DataFrame を Excel の機能と組み合わせることで、どれほど強力で便利なものになるかを感じ取ってもらえればと思います。

筋トレとオートメーションが趣味。 モバイルアプリ個人開発者。 データ処理・可視化とレポートにハマり備忘録と情報共有のためにブログ開設し運営している。