Pythonモジュールpandasを用いた基本操作

Pythonモジュールpandasを用いた基本操作

投稿日:2019/12/31, 更新日:2020年1月5日

インストール

pandasをインストール

下記コマンドでpandasをインストールする。

py -m pip install pandas

jupyterをインストール

わかりやすく表示をするため、jupyterを利用します。下記コマンドでjupyterをインストールします。

pip install jupyter

jupyter起動する場合は下記コマンドを利用します。

jupyter notebook
Advertisement

基本操作

データを読み込む

下記csvデータを読み込む

stock_information.csv

銘柄コード,銘柄名,株価,配当金
8015,豊田通商,3860,120
8002,丸紅,810.6,35
8058,三菱商事,2900,132
8001,伊藤忠商事,2534.5,85
8031,三井物産,1946,80
8053,住友商事,1624,80
2768,双日,352,17

下記コマンドでcsvを読み込む。
一行目でライブラリpandasを読み込み、2行目でread_csvを用い、データフレーム型としてstock_informationに格納、3行目で読み込んだstock_informationの5行目までを表示する。”.head()”を削除すれば、すべての行を表示することができる。

import pandas as pd
stock_information = pd.read_csv('stock_information.csv')
stock_information.head()

jupyterでの結果

データの結合(ユニオン)

データの結合を行う。ここでの結合は列の結合となる。

import pandas as pd
union1 = pd.read_csv('stock_information.csv')
union2 = pd.read_csv('stock_information.csv')
union  = pd.concat([union1,union2],ignore_index=True)
union.head()

上記だけでは結合されたかわからないため、列の数を下記コマンドで確認しましょう。

print(len(union1))
print(len(union2))
print(len(union))

実行すると、7、7、14と出力され、結合していることが確認できる。

データの結合(ジョイン)

行の追加ではジョインを行う。”stock_information.csv”と”stock_detail.csv”の結合を行う。csvの中身は下記の通りだ。

stock_detail.csv

銘柄コード,配当性向(%),自己資本比率(%),時価総額(億円),有利子負債(百万円)
8015,26.5,27.0,13595,1509346
8002,26.0,29.6,13993,2387741
8058,33.6,30.9,45937,5178517
8001,25.6,27.4,38449,2902352
8031,33.6,34.8,34208,4988914
8053,29.2,33.0,20641,3191271 
2768,30.2,25.7,4305,864968

“stock_information.csv”と”stock_detail.csv”の結合は下記で行う。共通するデータ列は”銘柄コード”になります。

import pandas as pd
join1 = pd.read_csv('stock_information.csv')
join2 = pd.read_csv('stock_detail.csv')
join  = pd.merge(join1,join2,on="銘柄コード",how="left")
join
Advertisement

必要なデータ列の作成

必要なデータ列を作成する。今回は”株価”列と”配当金”列を用いて”配当利回り(%)”を作成した。

import pandas as pd
join1 = pd.read_csv('stock_information.csv')
join1["配当利回り(%)"]  = join1["配当金"] / join1["株価"]*100
join1[["銘柄コード","銘柄名","株価","配当金","配当利回り(%)"]]

データ検算

下記データの時価総額データの合計値を出す。

import pandas as pd
item1 = pd.read_csv('stock_information.csv')
item2 = pd.read_csv('stock_detail.csv')
item  = pd.merge(item1,item2,on="銘柄コード")
print(item["時価総額(億円)"].sum())

出力結果が、171128となっており合計値が出力されました。ジョインする前のデータとジョイン後の合計値が同じか下記で確認します。

import pandas as pd
item1 = pd.read_csv('stock_information.csv')
item2 = pd.read_csv('stock_detail.csv')
item  = pd.merge(item1,item2,on="銘柄コード")
item["時価総額(億円)"].sum() == item2["時価総額(億円)"].sum()

Trueと出力され、データ損失なく結合が行われていることがわかりました。

Pythonカテゴリの最新記事