見出し画像

『Python実践データ分析100本ノック』ノック51〜54

今回は、『Python実践データ分析100本ノック』で学んだことをアウトプットします。

indexがあるcsvの読み込み

indexがあるcsvファイルを、pd.read_csv()で読み込む際、何も指定しないと特にindex列は認識されない。

index列を認識させる場合、index_col=0のようにindexとして使いたい列の列番号を0始まりで指定する。

import pandas as pd

factories = pd.read_csv('tbl_factory.csv', index_col=0)
factories

画像1

ノック53:ネットワークを可視化してみよう

ネットワークの可視化に有用なライブラリとしてはNetworkXというものがあります。

import networkx as nx
import matplotlib.pyplot as plt

# グラフオブジェクトの作成
G=nx.Graph()

# 頂点の設定
G.add_node('nodeA')
G.add_node('nodeB')
G.add_node('nodeC')

# 辺の設定
G.add_edge('nodeA', 'nodeB')
G.add_edge('nodeA', 'nodeC')
G.add_edge('nodeB', 'nodeC')

# 座標の設定
pos = {}
pos['nodeA'] = (0, 0)
pos['nodeB'] = (1, 1)
pos['nodeC'] = (0, 1)

# 描画
nx.draw(G,pos)

# 表示
plt.show()

画像2

まず、グラフオブジェクトを宣言し、頂点(nodeA、nodeB、nodeC)とそれをつなぐ辺を設定します。次に、頂点の座標位置を設定し、関数drawを用いて描画します。画面上の表示は、matplotlibの関数showを用います。

ノック54:ネットワークにノードを追加してみよう

上記で作成したグラフに、新たに頂点nodeDを追加してみましょう。

G.add_node('nodeD')

G.add_edge('nodeA', 'nodeD')

pos['nodeD'] = (1, 0)

nx.draw(G, pos, with_labels=True)

画像3

ノック53と同様に、add_nodeで頂点を追加した上で、既存の頂点とのリンクをadd_edgeによって作成します。位置はdict形式のposに追加します。

最後にdrawによってネットワークを可視化するのですが、ここでは、引数にwith_labels=Trueを加えることで、頂点につけられた名前(ラベル)を表示しています。

今回の学びのまとめ

○indexがあるcsvファイルを読み込む際、index列を認識させたい場合は、index_col=0のようにindexとして使いたい列の列番号を0始まりで指定

○Networkxでネットワークを可視化する手順は以下の通り。
1.グラフオブジェクトを宣言
2.頂点とそれをつなぐ辺を設定
3.頂点の座標位置を設定
4.関数drawを用いて描画。画面上の表示は、matplotlibの関数showで。

○draw関数の引数にwith_labels=Trueを加えることで、頂点につけられた名前(ラベル)を表示することができる。

サポート、本当にありがとうございます。サポートしていただいた金額は、知的サイドハッスルとして取り組んでいる、個人研究の費用に充てさせていただきますね♪