集合関数を利用して事業区分を整える

子会社を吸収した関係で事業区分の再編を行っています。

親会社の事業区分は次の通りです。
事業区分   チーム区分
・事業C  ・チーム1
・事業C  ・チーム2
・事業D
・事業E

子会社の事業区分は次の通りです。
事業区分   チーム区分
・事業A  ・チーム1
・事業A  ・チーム2
・事業C  ・チーム1
・事業C  ・チーム2
・事業D
・事業G

親会社と子会社が合併した関係で事業区分につき整理したいと思います。
次の①、②、③の目的で整理してみます。

①和集合
親会社と子会社の事業区分をまとめます。
親会社と子会社では、同じ事業を行っていたものもあり、またC事業のようにチームは分かれますが同じ事業というものもありますので、事業区分がダブることなく親会社と子会社を合わせてどんな事業があるのかを把握します。

②積集合
親会社と子会社で同じ事業は何があるのかを整理します。

③差集合
子会社の行っていた事業のうち、親会社で行っていない事業は何があるのかを整理します。

それぞれの事業区分を抽出したら次のようなデータができました。
親会社(parent)=C ,E, D, C
子会社(sub)=G, D, C, C, A, A

アルファベット順になっていないため見にくいですが、気にすることなく次のコードを書いて整理します。
(pythonのnumpyモジュールを使用します)

import numpy as np

parent = [‘C’, ‘E’,’D’,’C’]
sub = [‘G’,’D’,’C’,’C’, ‘A’,’A’]

# ① 親会社(paretnt)と子会社(sub)の和集合を出力
print(np.union1d(parent,sub))

# ② 親会社(paretnt)と子会社(sub)の積集合を出力
print(np.intersect1d(parent, sub))

# ③子会社(sub)から親会社(parent)を引いた差集合を出力
print(np.setdiff1d(sub, parent))

すると次のように出力されました。

['A' 'C' 'D' 'E' 'G']
['C' 'D']
['A' 'G']



結果は次の通りとなります。

① 親会社と子会社の事業をまとめる(和集合)
[‘A’ ‘C’ ‘D’ ‘E’ ‘G’]

抽出したデータはアルファベット順になっていませんでしたが、結果はアルファベット順に返りました。
また、チームが複数あるC事業はひとつにまとめられています。

②親会社が行う事業と子会社が行う事業で同じもの(積集合)
[‘C’ ‘D’]

③子会社が行う事業で親会社が行っていなかった事業(差集合)
[‘A’ ‘G’]

以上統合における事業整理でした。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です