Python规整电商编码
说明
在电商店铺运营的过程中,会产生很多不同的编码组合,也会加上很多的前缀,这就不利于后期做数据分析。需要先对编码进行一个规整。
案例:食品店铺
编码组合预览
python程序
import pandas as pd
df = pd.read_excel('D:/desk/编码.xlsx')
# 找到要进行操作的列和
column_to_read = '名称'
column_to_update = '数量'
hong = '红色'
cheng = '橙色'
huang ='黄色'
def update_hong(row):
if '红' in row[column_to_read] :
if '20' in row[column_to_read] :
return 20
else:
return row[column_to_update]
else:
return ''
def update_cheng(row):
keywords=['橙色','橘橙']
if any(keyword in row[column_to_read] for keyword in keywords) :
return row[column_to_update]
else:
return ''
df[hong] = df.apply(update_hong, axis=1)
df[cheng] = df.apply(update_cheng, axis=1)
def update_pw(row):
if row[hong] != '':
return "红色" + str(row[hong])
elif row[cheng] != '':
return "橙色" + str(row[cheng])
else:
return ''
pw='口味规格'
df[pw]=df.apply(update_pw,axis=1)
def update_pl(row):
keywords1=['红色','橙色']
if '蓝色' in row[pw] :
return "蓝色"
elif '绿色' in row[pw]:
return "绿色"
elif any(keyword in row[pw] for keyword in keywords1) :
return "红橙黄"
else:
return ''
pl='品类'
df[pl]=df.apply(update_pl,axis=1)
# 按照某一列进行分组(假设为“列A”)
grouped = df.groupby('组合装编号')
# 对分组后的数据进行合并
# merged = grouped.aggregate(lambda x: ','.join(x.unique()))
merged = grouped.aggregate(lambda x: ','.join(x.dropna().apply(str).unique()) if x.name in ['红色','橙色'] else x.dropna().apply(str).unique()).reset_index()
# 保存文件
merged.to_excel(excel_writer=r"D:\desk\sku.xlsx", index=False)
后面还可以对其进行其他的分类以及分析