如何解决对 Etsy 中的项目变体进行排序
(我的第一篇文章) 我查看了提出的类似问题,但令人惊讶的是找不到与我的问题相符的任何内容。
我正在寻找对我妻子的面具制作 etsy 商店的变化数据进行排序的最佳方法。她的面料颜色很多,有小号、中号和大号。
我已成功使用拆分功能将给定的“变化”列拆分为“颜色”和“大小”
例如;
颜色(1) #_small: 2 #_中:3 #_large:1
颜色(2) #_small: 1 #_中:4 #_large:2
等等。 或者其他方式 我假设其他一些企业对他们收到的订单做了类似的事情,我也很想为我妻子的商店实施它。
到目前为止我的代码是:
import pandas as pd
etsy = pd.read_csv(r"full_path.csv")
etsy['color'] = etsy.Variations.str.split(',',expand=True)[0]
etsy['size'] = etsy.Variations.str.split(',expand=True)[1]
print(etsy[['color','size']])
此方法用于避免“键必须等于列错误”,因为客户可以在另一个变体部分中写下个人评论,其中通常包含逗号。
print(etsy[['color','size']])
的当前结果是
color size
0 Color:Black Size:Adult M/L
1 Color:Black Size:Adult XL
2 Color:Fern Grey Size:Adult Small
3 Color:Blue Birds Size:Adult
4 Color:Purple Hexagons Size:KIDS (4~9yo)
解决方法
您可以使用 .groupby('color')['size'].agg
,在聚合内您可以使用 Counter
创建大小及其计数的字典。
from collections import Counter
df = pd.DataFrame({'color': ['blue','blue','red','red'],'size': ['small','medium','small','large','large']})
>>> df
color size
0 blue small
1 blue medium
2 blue small
...
10 red medium
11 red large
12 red large
>>> df.groupby('color')['size'].agg(Counter)
color
blue {'small': 2,'medium': 3,'large': 1}
red {'small': 1,'medium': 4,'large': 2}
Name: size,dtype: object
,
在 Amit Vikram Singh 的帮助下,我想出了以下代码,打印出所需的每种颜色以及 .groupby 和 .agg 需要的每种尺寸的数量
但在运行该代码之前,我仅过滤了特定日期的订单数据。
感谢所有帮助过我的人!!
最终代码如下:
(key,value)-true
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。