目次
サンプルDFを作成後、pklで出力する
import pandas as pd
import numpy as np
import pathlib
from tqdm import tqdm
# サンプルDF_カラム作成用
def get_col_list(col_name):
col = {
'area': ['北海道', '東北', '東京', '中部', '関西', '中国', '四国', '九州', '沖縄'],
'plan': ['Aプラン', 'Bプラン', 'Cプラン'],
}
rand_num = np.random.randint(0, len(col[col_name]))
col_val = col[col_name][rand_num]
return col_val
# サンプルDF作成後、出力する(periodは列「年月」作成用)
def get_df_to_pkl():
period = ['202004', '202005', '202006', '202007', '202008', '202009', '202010', '202011', '202012', '202101', '202102', '202103']
for i, ym in enumerate(period):
ym_data = [ym for i in list(range(3000))]
area_data = [get_col_list('area') for j in list(range(3000))]
plan_data = [get_col_list('plan') for j in list(range(3000))]
uriage_data = [np.random.randint(1000,20000) for j in range(3000)]
data = {
'年月': ym_data,
'エリア': area_data,
'プラン': plan_data,
'売上額': uriage_data,
}
df = pd.DataFrame(data)
pkl_name = "unique_" + ym_data[0] + ".pkl"
p = pathlib.Path("/Users/mbp441/Desktop/pkl") / pkl_name
df.to_pickle(p) フォルダ内のpklファイルを全結合(concat)
# フォルダ内のpklファイルを全結合
def concat_df_all_indir():
base_dir = pathlib.Path("/Users/mbp441/Desktop/pkl")
list_pkl = list(base_dir.glob('*.pkl'))
df_list = []
for p in list_pkl:
print(p)
df = pd.read_pickle(p)
df_list.append(df)
df_all = (pd.concat(df_list)
.sort_values(['年月'], ascending=[True])
.reset_index(drop=True))
return df_all
df_all.to_pickle((base_dir / "unique_all.pkl")一部エリアの売上を集計
sales_by_area = (
df_all.groupby(['エリア','年月'])
.agg({'売上額': 'sum'})
.reset_index()
)
month_sales_chubu = sales_by_area.query('エリア == "中部"')
total_sales_chubu = month_sales_chubu['売上額'].sum()
display(month_sales_chubu)
print(f'中部エリア売上額(202004~202103):{total_sales_chubu}')