2.2 QuickStart: Pythonシェルを使用したグラフ分析の実行

このチュートリアルでは、Pythonシェルを使用してプロパティ・グラフ・データの使用を開始する方法を示します。

このクイック・スタートの前提条件として、次のインストールを完了していることを確認する必要があります。
  1. 次に示すように、Pythonシェルを起動します。
    ./bin/opg4py --base_url https://localhost:7007

    ユーザー名とパスワードの入力を求められます。

  2. 次に示すように、Pythonクライアントがリモート・グラフ・サーバー(PGX)インスタンスに接続されていることを確認します。
    Oracle Graph Server Shell 21.4.0
    >>> instance
    ServerInstance(embedded: False, base_url: https://localhost:7007, version: <oracle.pgx.common.VersionInfo at 0x7fb71a1b2f68 jclass=oracle/pgx/common/VersionInfo jself=<LocalRef obj=0xadd938 at 0x7fb71a1808f0>>)
    
  3. グラフ・ビルダーPython APIを使用してグラフを作成します。
    >>> graph = session.create_graph_builder().add_edge(1, 2).add_edge(2, 3).build("my_graph")
  4. グラフで組込みアルゴリズムを実行します。次に例を示します。
    >>> analyst.pagerank(graph)
    VertexProperty(name: pagerank, type: double, graph: my_graph)
  5. PGQL問合せを実行し、次に示すようにPGQL結果セットを出力します。
    >>> rs = session.query_pgql("select id(x), x.pagerank from match (x) on my_graph")
    >>> rs.print()
    +-----------------------------+
    | id(x) | pagerank            |
    +-----------------------------+
    | 1     | 0.05000000000000001 |
    | 2     | 0.09250000000000003 |
    | 3     | 0.12862500000000002 |
    +-----------------------------+

    PGQL結果セットからPandasデータフレームへの変換

    さらに、to_pandas()メソッドを使用して、PGQL結果セットをpandas.DataFrameオブジェクトに変換することもできます。これによって、結果セットに対して様々なデータ・フィルタリング操作をより簡単に実行できるようになるとともに、それをラムダ関数で使用することもできます。次に例を示します。
    example_query = (
        "SELECT n.name as name, n.age as age "
        "WHERE (n)"
    )
    result_set = sample_graph.query_pgql(example_query)
    result_df = result_set.to_pandas()
    
    result_df['age_bin'] = result_df['age'].apply(lambda x: int(x)/20) # create age bins based on age ranges

    関連項目:

    使用可能な一連のPython APIをすべて確認するには、Python APIリファレンスを参照してください