본문 바로가기
Analysis/Example

물류 데이터 분석 - 데이터 가공, 통계량 파악

by 5ole 2021. 2. 15.

1. 전제조건 

 

  • 제품의 부품을 보관하는 창고에서 생산 공장까지 운송 비용을 낮추기
  • 북부지사와 남부지사의 데이터
  • Cost는 단위가 만원

 

2. 데이터 정보

 

  • tbl_factory.csv : 생산 공장 데이터  (8,4)

(FCID, FCName, FCDemand, FCRegion)

 

 

  • tbl_warehouse.csv : 창고 데이터 (6,4)

(WHID, WHName, WHSupply, WHRegion)

 

 

 

  • rel_cost.csv : 창고와 공장간의 운송비용 (24,4)

(RCostID, FCID, WHID, Cost)

 

 

  • tbl_transaction.csv : 2019년의 공장으로의 부품 운송 실적 (4000,5)

(TRID, TransactionDate, ToFC, FromWH, Quantity)

 

 

3. 데이터 가공

 

(1) 데이터 결합

 

  • 열 순서 정렬 
  • 중복되는 창고 id(WHID), 공장 id (FCID) , 지사(FCRegion) 열은 하나만 남겨두고 제거 
import os
import pandas as pd
import networkx as nx
import matplotlib.pyplot as plt


os.chdir('C:\\Users\\leeso\\Downloads\\pyda100-master\\6장')

factory=pd.read_csv('tbl_factory.csv')

warehouse=pd.read_csv('tbl_warehouse.csv')

cost = pd.read_csv('rel_cost.csv')

trans = pd.read_csv('tbl_transaction.csv')

join_data = pd.merge(trans,cost, left_on=['ToFC','FromWH'],right_on=['FCID','WHID'],how='left')
join_data_2 = pd.merge(join_data, factory,on='FCID',how='left')

join_data_3.columns
merge_data= join_data_3[['TRID', 'TransactionDate', 'Quantity',
       'Cost','ToFC', 'FCName', 'FCDemand', 'FCRegion', 'FromWH','WHName',
       'WHSupply', 'WHRegion', 'RCostID']]

 

(2) 지사 분류 - 남부, 북부

 

north =join_data_3.loc[join_data_3['FCRegion']=='북부']
south =join_data_3.loc[join_data_3['FCRegion']=='남부']

북부
남부

 

3.  북부, 남부지사 비교

 

(1) 1년간 운송 비용 - trans 데이터를 바탕으로

 

  • 북부지사가 남부지사보다 더 많은 비용을 소요함
north['Cost'].sum()
south['Cost'].sum()

 

 

(2) 1년간 총 부품 운송 개수 - trans 데이터를 바탕으로

 

  • 남부지사가 더 많은 부품을 운송했음
north['Quantity'].sum()
south['Quantity'].sum()

 

 

 

(3) 부품 1개당 운송 비용

 

  • 단위 10000원
  • 북부지사는 한 개당 445.47원, 남부지사는 410.64원으로 북부지사가 더 비싸게 운송했음
(north['Cost'].sum() / north['Quantity'].sum())*10000

(south['Cost'].sum() / south['Quantity'].sum())*10000

 

 

(4)  각 지사의 평균 운송 비용

 

  • 지사와 창고 간의  운송비용이 북부지역이 더 비쌀 수 있으니 계산
  • 평균 운송비용은 두 지사 1.07과 1.05로 크게 차이나지는 않음
cost_chk = pd.merge(cost,factory,on='FCID',how='left')

cost_chk.loc[cost_chk['FCRegion']=='북부','Cost'].mean()
cost_chk.loc[cost_chk['FCRegion']=='남부','Cost'].mean()

 

 

 

 

+ 참고 자료 및 출처

 

댓글