python实例分析:每周上新款销售表现呈现

python实例分析:每周上新款销售表现呈现

业务场景:已知款的上新周数、上新量、销售1周表现====>如何在每一周呈现所有上新款的订单和销售信息?

换算理解:python代码实现:表1转换为表2;其中款的地方会替换成每一张款图片进行呈现

表1如下:

LEVEL1_1Launch SeasonSUBCLASSARTYWORDERROS1W
BAGSL2AA120250110002.52
BAGSL2AA220250110002.52
BAGSL2AA320250110002.52
BAGSL2AA420250110002.52
BAGSL2AA520250210002.52
BAGSL2AA620250210002.52
BAGSL2AA720250310002.52
BAGSL2AA820250310002.52
BAGSL2AA920250310002.52
BAGSL2BB120250110002.52
BAGSL2BB220250110002.52
BAGSL2BB320250110002.52
BAGSL2BB420250110002.52
BAGSL2BB520250210002.52
BAGSL2BB620250210002.52
BAGSL2BB720250310002.52
BAGSL2BB820250310002.52
BAGSL2BB920250310002.52

表2如下:

Launch SeasonSUBCLASS202501202501202502202502202503202503
L2AA1order:1000 ros1w:2.52A5order:1000 ros1w:2.52A7order:1000 ros1w:2.52
L2AA2order:1000 ros1w:2.52A6order:1000 ros1w:2.52A8order:1000 ros1w:2.52
L2AA3order:1000 ros1w:2.52--A9order:1000 ros1w:2.52
L2AA4order:1000 ros1w:2.52----
L2BB1order:1000 ros1w:2.52B5order:1000 ros1w:2.52B7order:1000 ros1w:2.52
L2BB2order:1000 ros1w:2.52B6order:1000 ros1w:2.52B8order:1000 ros1w:2.52
L2BB3order:1000 ros1w:2.52--B9order:1000 ros1w:2.52
L2BB4order:1000 ros1w:2.52----

code实现:

# 原始数据
data = [
    ['BAGS', 'L2', 'A', 'A1', 202501, 1000, 2.52],
    ['BAGS', 'L2', 'A', 'A2', 202501, 1000, 2.52],
    ['BAGS', 'L2', 'A', 'A3', 202501, 1000, 2.52],
    ['BAGS', 'L2', 'A', 'A4', 202501, 1000, 2.52],
    ['BAGS', 'L2', 'A', 'A5', 202502, 1000, 2.52],
    ['BAGS', 'L2', 'A', 'A6', 202502, 1000, 2.52],
    ['BAGS', 'L2', 'A', 'A7', 202503, 1000, 2.52],
    ['BAGS', 'L2', 'A', 'A8', 202503, 1000, 2.52],
    ['BAGS', 'L2', 'A', 'A9', 202503, 1000, 2.52],
    ['BAGS', 'L2', 'B', 'B1', 202501, 1000, 2.52],
    ['BAGS', 'L2', 'B', 'B2', 202501, 1000, 2.52],
    ['BAGS', 'L2', 'B', 'B3', 202501, 1000, 2.52],
    ['BAGS', 'L2', 'B', 'B4', 202501, 1000, 2.52],
    ['BAGS', 'L2', 'B', 'B5', 202502, 1000, 2.52],
    ['BAGS', 'L2', 'B', 'B6', 202502, 1000, 2.52],
    ['BAGS', 'L2', 'B', 'B7', 202503, 1000, 2.52],
    ['BAGS', 'L2', 'B', 'B8', 202503, 1000, 2.52],
    ['BAGS', 'L2', 'B', 'B9', 202503, 1000, 2.52],
]
columns = ['LEVEL1_1', 'Launch Season', 'SUBCLASS', 'ART', 'YW', 'ORDER', 'ROS1W']
df = pd.DataFrame(data, columns=columns)

# 按 Launch Season, SUBCLASS 和 YW 分组,并排序 ART
groups = {}
for (launch_season, subclass, yw), group in df.groupby(['Launch Season', 'SUBCLASS', 'YW']):
    group = group.sort_values(by='ART')  # 按 ART 排序
    key = (launch_season, subclass)
    if key not in groups:
        groups[key] = {}
    groups[key][yw] = group[['ART', 'ORDER', 'ROS1W']].values.tolist()

# 确定每个 (Launch Season, SUBCLASS) 的最大行数
max_rows = {key: max(len(arts) for arts in yw_dict.values())  for key, yw_dict in groups.items()}

# 年份周顺序
YW_order = sorted(df['YW'].unique())

# 生成目标 DataFrame 的数据
table_data = []
for (launch_season, subclass), yw_dict in groups.items():
    print((launch_season, subclass), yw_dict)
    for row_idx in range(max_rows[(launch_season, subclass)]):
        row = [launch_season, subclass]
        for yw in YW_order:
            print(yw)
            arts_data = yw_dict.get(yw, [])
            if row_idx < len(arts_data):
                art, order, ros1w = arts_data[row_idx]
                desc = f'order:{order}\nros1w:{ros1w}'  # 使用换行符连接
                row.extend([art, desc])
            else:
                row.extend(['-', '-'])
        table_data.append(row)

# 生成目标 DataFrame 的列名
header = ['Launch Season', 'SUBCLASS']
for yw in YW_order:
    header.extend([str(yw), ''])  # 创建重复列头

# 创建目标 DataFrame
result_df = pd.DataFrame(table_data, columns=header)

# 打印结果
print(result_df)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

斑点鱼 SpotFish

你的鼓励是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值