#!C:\Users\JK\AppData\Local\Programs\Python\Python37-32
# 导入必要的模块
import pandas as pd
import os
# 实现需要按下任意键才退出程序
from pip._vendor.distlib.compat import raw_input
# 设置:显示所有的分析内容(行, 列)
pd.set_option('display.max_rows', None)
pd.set_option('display.max_columns', None)
# 获取文件,当文件夹下需要分析的文件名称不确定但必定包含了某个元素时
warehouse = os.listdir(r'C:\Users\JK\Desktop\库存分析')
warehouse_name = [warehouse[0] for file in warehouse if file.__contains__("inventor")][0]
# 读取一个 csv文件 和一个 Excel文件
template = pd.read_csv(r'C:\Users\JK\Desktop\库存分析\商品库存模板.csv', encoding="gb2312")
workbook = pd.read_excel(r'C:\Users\JK\Desktop\库存分析\{}'.format(warehouse_name))
# 设置索引,按照 index 合并数据
t1 = pd.DataFrame(template)
t1.set_index('skuid', drop=True, append=False, inplace=True)
t2 = pd.DataFrame(workbook)
t2.set_index('Fordeal SKU', drop=True, append=False, inplace=True)
t3 = t1.join(t2)
# 处理在仓库存
t3_in_warehouse = pd.DataFrame(t3["在仓可用库存"])
t3["在仓可用库存"] = t3_in_warehouse.fillna(0)
# 处理发货中的库存
t3_in_way = pd.DataFrame(t3["发货在途数量(非跨境)"])
t3["发货在途数量(非跨境)"] = t3_in_way.fillna(0)
# 处理正在处理的库存
t3_in_do = pd.DataFrame(t3["处理中数量(非跨境)"])
t3["处理中数量(非跨境)"] = t3_in_do.fillna(0)
# need_stock = t3["固定库存"] - t3["在仓可用库存"] - t3["发货在途数量(非跨境)"] - t3["处理中数量(非跨境)"]
# 计算需要发货的数量
need_stock = t3["在仓可用库存"] + t3["发货在途数量(非跨境)"] + t3["处理中数量(非跨境)"]
# 向t3添加一列 ["需要进货数量"]
t3["需要进货数量"] = pd.DataFrame(need_stock)
print(type(t3["需要进货数量"]))
# 将想要输出到Excel中的数据从 Serise 转换为全部为str格式的 list
data_need_stock_list = t3["需要进货数量"].tolist()
data_need_stock_list = [str(i) for i in data_need_stock_list]
data_need_notice_sku = t3.index
data_need_notice_sku = [str(i) for i in data_need_notice_sku]
data_belong_product = t3["货号"].tolist()
data_belong_product = [str(i) for i in data_belong_product]
data_prepare = t3["款式规格"].tolist()
data_prepare = [str(i) for i in data_prepare]
# data_size = t3["尺码"].tolist()
# data_size = [str(i) for i in data_size]
# 数据字典,一个“键值对”为一列
data = {
"需要关注的Sku": data_need_notice_sku,
"所属商品货号": data_belong_product,
# "尺码": data_size,
"款式规格": data_prepare,
"库存": data_need_stock_list
}
# 生成新的DataFrame
df = pd.DataFrame(data)
# 插入数据到Excel
df.to_csv(r'C:\Users\JK\Desktop\库存分析\商品库存推荐发货单.csv', index=False, mode='w')
print("结束!")
# 按任意键结束
raw_input("Press Enter key to exit.")
|