はじめに
データ分析は、急速に展開するこの時代において、ビジネス上の意思決定を行う上で欠かせない側面です。 組織はデータ分析に大きく依存して、十分な情報に基づく意思決定と競合優位の維持を行っています。 この記事では、Pandas と InterSystems Embedded Python を使ってデータ分析を実行する方法について説明します。 Pandas の基本、InterSystems Embedded Python を使用するメリット、および両方を組み合わせて有効なデータ分析を実行する方法について説明します。
Pandas とは?
Pandas は幅広いタスクに使用可能で、Pandas ができることよりも、できないことを記述する方が簡単なくらい汎用性の高いツールです。
基本的に、Pandas はデータの拠点として機能します。 データのクリーニング、変換、分析を行うことで、データを理解しやすくすることができます。 たとえば、データセットがコンピューターに CSV ファイルとして保存されている場合、Pandas はデータを DataFrame というテーブルのような構造に抽出することができます。 この DataFrame を使用すると、以下のような様々なタスクを実行できます。
- 各列の平均、中央値、最大値、または最小値を求める、列間の相関性の有無を判定する、特定の列のデータの分布を調べるなど、データに関して、統計を計算し、質問に答えます。
- 欠損値の削除や特定の基準に基づく行と列のフィルタ処理によって、データをクリーニングします。
- 棒、線、ヒストグラム、バブルなどをプロットできる Matplotlib を使ってデータを可視化します。
- クリーニングと変換を終えたデータを CSV、データベース、または別の種類のファイルに保存します。
モデリングや複雑な可視化を詳しく見る前に、データセットの性質をしっかり理解しておくことが必要です。Pandas には、この理解を達成するために最適な方法が備わっています。
InterSystems Embedded Python を使用するメリット
InterSystems Embedded Python は、InterSystems データプラットフォーム内に組み込まれている Python ランタイム環境です。 プラットフォーム環境から離れることなく、データプラットフォーム内で Python コードを安全かつ効率的に実行する方法を提供します。 つまり、様々な環境を切り替えながらデータ分析タスクを実行する必要がないため、データ分析の効率と生産性が向上します。
Pandas と InterSystems Embedded Python の組み合わせ
Pandas と InterSystems Embedded Python を組み合わせることで、データアナリストはデータ分析タスクを簡単に実行できます。 InterSystems Embedded Python には、Python コードを実行するための安全で効率的なランタイム環境が備わっており、Pandas には、一連の強力なデータ操作ツールが備わっています。 これらを合わせることで、組織に包括的なデータ分析ソリューションを提供しています。
Pandas のインストール
Python パッケージをインストールする
Pandas と InterSystems Embedded Python と使用するには、Python パッケージとして Pandas をインストールする必要があります。 以下は、Pandas のインストール手順です。
- 管理者モードでコマンドプロンプトを開きます(Windows)。
- コマンドプロンプトで
<installdir>/bin
ディレクトリに移動します。 - 次のコマンドを実行して Pandas をインストールします:
irispip install --target <installdir>\mgr\python pandas
。このコマンドによって Pandas は InterSystems が推奨する<installdir>/mgr/python
ディレクトリにインストールされます。インストールするパッケージによって、実際のコマンドは異なる場合があります。pandas
を、インストールしたいパッケージの名前に置き換えてください。
それだけです! これで、Pandas と InterSystems Embedded Python を使用できるようになりました。
irispip install --target C:\InterSystems\IRIS\mgr\python pandas
Pandas をインストールしたので、employees データセットで作業できるようになりました。 以下は、CSV ファイルを Pandas DataFrame に読み込み、データクリーニングと分析を実行する手順です。
まず、Python の新しいインスタンスを作成しましょう
Set python = ##class(%SYS.Python).%New()
ObjectScriptObjectScript
Python ライブラリをインストールします。ここでは、pandas と buildins をインポートします。
Set pd = python.Import("pandas")
#;To import the built-in functions that are part of the standard Python library
Set builtins = python.Import("builtins")
ObjectScriptObjectScript
データを pandas ライブラリにインポート
InterSystems Embedded Python を使用して Pandas DataFrame にデータを読み込むには、いくつかの方法があります。 以下は一般的な 3 つの方法です。
次のサンプルファイルを例として使用しています。
CSV からデータを読み取る
CSV ファイルへのパスを使って read_csv()
を使用し、カンマ区切り値を読み取ります。
Set df = pd."read_csv"("C:\InterSystems\employees.csv")
ObjectScriptObjectScript
テキストファイルをインポートする
テキストファイルの読み取りは CSV ファイルに似ています。 唯一のニュアンスは、以下に示すように、sep
引数で区切り文字を指定する必要があることです。 この区切り文字引数は、DataFrame 内の行を区切るために使用するシンボルを参照します。 区切り文字として、コンマ(sep = ","
)、ホワイトスペース(sep = "\s"
)、タブ(sep = "\t"
)、コロン(sep = ":"
)が一般的に使用されます。 ここでは、\s
は 1 つのホワイトスペース文字を表します。
Set df = pd."read_csv"("employees.txt",{"sep":"\s"})
ObjectScriptObjectScript
Excel ファイルのインポート
単一シートの Excel ファイルをインポートするには、ファイルパスを入力とする "read_excel()" 関数を使用します。 たとえば、df = pd.read_excel('employees.xlsx') というコードの場合、"diabetes.xlsx" という Excel ファイルを読み取り、そのコンテンツを "df" という DataFrame に格納します。
どの行を DataFrame のヘッダーにするかを決定するヘッダー引数など、他の引数も指定することができます。 デフォルトでは、ヘッダーは 0 に設定されているため、最初の行がヘッダーまたは列名になります。 列名を指定する場合は、names 引数に名前のリストを渡すことができます。 ファイルに行インデックスが含まれる場合は、index_col 引数を使って指定できます。
Pandas DataFrame または Series では、インデックスが行または列の位置を指す識別子であることに注意してください。 DataFrame の行または列にラベルを付け、インデックスを使用して特定の行または列にアクセスすることができます。 行インデックスは、値の範囲、時系列、一意の識別子(社員 ID など)、またはその他の種類のデータにすることができます。 列に関しては、インデックスは通常、列名を示す文字列です。
Set df = pd."read_excel"("employees.xlsx")
ObjectScriptObjectScript
Excel ファイルをインポートする(複数のシート){#importing-excel-files-(multiple-sheets)}
複数のシートが含まれる Excel の読み取りも、それほど変わりません。 sheet_name
という追加の引数を 1 つ指定し、シート名の文字列またはシート位置の整数を渡すだけです(Python では 0 インデックスが使用されているため、最初のシートは sheet_name = 0
でアクセスできます)。
#; Extracting the second sheet since Python uses 0-indexing
Set df = pd."read_excel"("employee.xlsx", {"sheet_name":"1"})
ObjectScriptObjectScript
JSON からデータを読み取る
Set df = pd."read_json"("employees.json")
ObjectScriptObjectScript
DataFrame 内のデータを確認
.head()
と .tail()
を使ってデータを表示する方法
これには、インポートした builtins ライブラリを使用できます(ZW でも動作します)
do builtins.print(df.head())
ObjectScriptObjectScript
データセットの列をすべて表示
Do builtins.print(df.columns)
ObjectScriptObjectScript
データのクリア
'Start Date' 列を日時オブジェクトに変換
Set df."Start Date" = pd."to_datetime"(df."Start Date")
ObjectScriptObjectScript
更新後のデータセットは以下のようになります。
'Last Login Time' 列を日時オブジェクトに変換
Set df."Last Login Time" = pd."to_datetime"(df."Last Login Time")
ObjectScriptObjectScript
'Salary' 列の欠損値に平均給与を設定
Set meanSal = df."Salary".mean()
Set df."Salary" = df."Salary".fillna(meanSal)
ObjectScriptObjectScript
分析の実行
性別ごとの平均給与を計算
Do builtins.print(df.groupby("Gender")."Salary".mean())
ObjectScriptObjectScript
チームごとの平均ボーナス率を計算
Do builtins.print(df.groupby("Team")."Bonus %".mean())
ObjectScriptObjectScript
毎年採用される社員数を計算
Do builtins.print(df."Start Date".dt.year."value_counts"()."sort_index"())
ObjectScriptObjectScript
年功者かどうかで社員数を計算
Do builtins.print(df."Senior Management"."value_counts"())
ObjectScriptObjectScript
Pandas でのデータの出力
Pandas は様々なファイルタイプからデータをインポートできるように、様々な形式にエクスポートすることも可能です。 これは特に、データが Pandas を使って変換され、ローカルマシン上に保存する必要がある場合に行われます。 以下は、Pandas DataFrams を様々な形式で出力する方法です。
DataFrame を CSV ファイルに出力する
Pnadas DataFrame(ここでは df
を使用)は、."to_csv"()
メソッドを使って CSV ファイルとして保存されます。
do df."to_csv"("C:\Intersystems\employees_out.csv")
ObjectScriptObjectScript
DataFrame を JSON ファイルに出力する
."to_json"()
メソッドを呼び出して、DataFrame オブジェクトを JSON ファイルにエクスポートします。
do df."to_json"("C:\Intersystems\employees_out.json")
ObjectScriptObjectScript
DataFrame を Excel ファイルに出力する
DataFrame オブジェクトから ."to_excel"()
を呼び出して、“.xls”
または “.xlsx”
ファイルとして保存します。
do df."to_excel"("C:\Intersystems\employees_out.xlsx")
ObjectScriptObjectScript
毎年採用される社員数を示す基本的な棒グラフを作成してみましょう。
これには、matplotlib.pyplot を使用します。
//import matplotlib
Set plt = python.Import("matplotlib.pyplot")
//create a new dataframe to reprecent the bar chart
set df2 = df."Start Date".dt.year."value_counts"()."sort_index"().plot.bar()
//export the output to a png
do plt.savefig("C:\Intersystems\barchart.png")
//cleanup
do plt.close()
ObjectScriptObjectScript
以上です! これらの単純なステップを使えば、CSV ファイルを読み取り、データをクリーニングして、InterSystems Embedded Python で Pandas を使って、基本的な分析を実行できます。
動画
以下のリンクを使って、動画にアクセスできるようになりました。 動画そのものは、上記のチュートリアルの包括的な概要と詳細として機能します。
https://youtu.be/hbRQszxDTWU
まとめ
提供されたチュートリアルは、Pandas が実行できる基本機能しかカバーされていません。 Pandas を使うと、広範なデータ分析、可視化、フィルタリング、集計タスクを実行できるため、あらゆるデータワークフローで貴重なツールとなります。 また、他のデータサイエンスパッケージと組み合わせると、たとえば、対話型ダッシュボードを構築し、機械学習モデルを開発して予測を行い、データワークフローを自動化することができます。 Pandas の理解をさらに深めるには、以下に記載するリソースを調べ、学習過程を加速させましょう。
免責事項
Pandas と InterSystems の活用には様々な方法があることに注意してください。 提供された記事は、教育のみを目的としており、最も最適なアプローチを保証するものではありません。 この記事の著者として、Pandas の機能を継続的に学習し調査しているため、より良い結果を生み出す別の方法や手法が存在する可能性があります。 したがって、読者は慎重な判断と注意を以って、この記事に記載さあれている情報を各自のプロジェクトに適用することをお勧めします。