import polars as plpath = r”D:\python的库polars实现亚马逊订单价格段分析.xlsx”df_订单明细_原币 = (pl.read_excel(path,sheet_name='订单明细').with_row_index('index'))df_汇率 = (pl.read_excel(path,sheet_name='汇率'))cut分箱_breaks = [20,100,300]cut分箱_labels = ['低值易耗品','走量产品','高端产品','定制产品']# 其他2个参数只是调整样式,自己尝试把默认的False改成True试试就好qcut分箱_quantiles = [0.25,0.5,0.75]qcut分箱_labels = ['<1/4','<2/4','<3/4','<4/4']# 其他2个参数只是调整样式,自己尝试把默认的False改成True试试就好# qcut 也可只传入一个整数,此时这个整数需要和labels里面的个数一致# qcut分箱_quantiles = 4# qcut分箱_labels = ['<1/4','<2/4','<3/4','<4/4']# 这里需要有数据清洗的过程,比如去除取消订单等,此处简化df_订单明细_人民币 = (df_订单明细_原币.join(other=df_汇率,left_on=['订单币种'],right_on=['订单币种'],how='left').with_columns((pl.col('单价') * pl.col('汇率')).alias('单价_人民币'),(pl.col('销售额') * pl.col('汇率')).alias('销售额_人民币'),).with_columns(pl.col('单价_人民币').cut(breaks=cut分箱_breaks,labels=cut分箱_labels).alias('cut分箱')).with_columns(pl.col('单价_人民币').qcut(quantiles=qcut分箱_quantiles,labels=qcut分箱_labels).alias('qcut分箱')))# 维度自定义,以国家为例df_订单明细_人民币_国家维度 = (df_订单明细_人民币.group_by(['国家','cut分箱']).agg(pl.col('订单号').n_unique().alias('订单量'),pl.col('数量').sum().alias('产品数量'),pl.col('销售额').sum(),))df_订单明细_人民币.write_excel('./df_订单明细_人民币.xlsx')df_订单明细_人民币_国家维度.write_excel('./df_订单明细_人民币_国家维度.xlsx')
这里依然需要2个检查 ,1:币种是否完全匹配到 ,2:是否匹配重复
详见python的库polars实现跨境电商财务核算中批量汇率转换
此处可以进一步处理,比如看高端产品在哪个国家占比最大等,不是本次重点,后续再说。