原始表格:流水
生成表格:销售1-统计每个月的销量
销售2-按客户统计每个月的销量
采购统计-统计每个月的采购量
原始表格:流水
生成表格:销售1-统计每个月的销量
采购统计-统计每个月的采购量
安装依赖
pip install numpy pandas openpyxl xlrd
销售
# coding=utf-8
import os
import numpy
import pandas as pd
df = pd.DataFrame(pd.read_excel('/Users/zhangyz/Desktop/海/流水.xls', header=1))
df = df.dropna(subset=['单据日期', '出库数量'])
df['单据日期'] = pd.to_datetime(df['单据日期'], format='%Y-%m-%d %H:%M:%S')
df['Month'] = df['单据日期'].dt.month
df = df.groupby(['商品编码', '商品名称', '商品规格', '单位', '生产企业', '批号', 'Month'], as_index=False).agg({'出库数量': 'sum'})
groupByColumns = ['商品编码', '商品名称', '商品规格', '单位', '生产企业', '批号']
df = pd.pivot(data=df,
index=groupByColumns,
columns='Month',
values=['出库数量'])
headers = []
headers.extend(df.axes[0].names)
for i in df.axes[-1].levels[1].values:
headers.append(str(i) + '月')
temp_xlsx = 'temp.xlsx'
df.to_excel(temp_xlsx, sheet_name='bluewhale_cc', header=False)
df = pd.DataFrame(pd.read_excel(temp_xlsx))
for i in range(0, len(groupByColumns)):
df['Unnamed: ' + str(i)].ffill(inplace=True)
df.to_excel('销售.xlsx', sheet_name='bluewhale_cc', header=headers, index=False)
os.remove(temp_xlsx)
客户销售
# coding=utf-8
import os
import numpy
import pandas as pd
df = pd.DataFrame(pd.read_excel('/Users/zhangyz/Desktop/海/流水.xls', header=1))
df = df.dropna(subset=['单据日期', '出库数量'])
df['单据日期'] = pd.to_datetime(df['单据日期'], format='%Y-%m-%d %H:%M:%S')
df['Month'] = df['单据日期'].dt.month
df = df.groupby(['商品编码', '商品名称', '商品规格', '单位', '生产企业', '批号', '客户名称', 'Month'], as_index=False).agg({'出库数量': 'sum'})
groupByColumns = ['商品编码', '商品名称', '商品规格', '单位', '生产企业', '批号', '客户名称']
df = pd.pivot(data=df,
index=groupByColumns,
columns='Month',
values=['出库数量'])
headers = []
headers.extend(df.axes[0].names)
for i in df.axes[-1].levels[1].values:
headers.append(str(i) + '月')
temp_xlsx = 'temp.xlsx'
df.to_excel(temp_xlsx, sheet_name='bluewhale_cc', header=False)
df = pd.DataFrame(pd.read_excel(temp_xlsx))
for i in range(0, len(groupByColumns)):
df['Unnamed: ' + str(i)].ffill(inplace=True)
df.to_excel('客户销售.xlsx', sheet_name='bluewhale_cc', header=headers, index=False)
os.remove(temp_xlsx)
进货
# coding=utf-8
import os
import numpy
import pandas as pd
df = pd.DataFrame(pd.read_excel('/Users/zhangyz/Desktop/海/流水.xls', header=1))
df = df.dropna(subset=['单据日期', '入库数量'])
df['单据日期'] = pd.to_datetime(df['单据日期'], format='%Y-%m-%d %H:%M:%S')
df['Month'] = df['单据日期'].dt.month
df = df.groupby(['商品编码', '商品名称', '商品规格', '单位', '生产企业', '批号', 'Month'], as_index=False).agg({'入库数量': 'sum'})
groupByColumns = ['商品编码', '商品名称', '商品规格', '单位', '生产企业', '批号']
df = pd.pivot(data=df,
index=groupByColumns,
columns='Month',
values=['入库数量'])
headers = []
headers.extend(df.axes[0].names)
for i in df.axes[-1].levels[1].values:
headers.append(str(i) + '月')
temp_xlsx = 'temp.xlsx'
df.to_excel(temp_xlsx, sheet_name='bluewhale_cc', header=False)
df = pd.DataFrame(pd.read_excel(temp_xlsx))
for i in range(0, len(groupByColumns)):
df['Unnamed: ' + str(i)].ffill(inplace=True)
df.to_excel('进货.xlsx', sheet_name='bluewhale_cc', header=headers, index=False)
os.remove(temp_xlsx)