我有3列和1000多个行的数据帧,如何在Python中使用for循环子集和列出DataFrame?
df
day product order
2010-01-01 150ml Mask 9
2010-01-02 230ml Lotion 27
2010-01-03 600ml Shampoo 33
而且我想集中每一个产品如下,
df_mask df_lotion df_shampoo
day order day order day order
2010-01-01 9 2010-01-02 27 2010-01-03 33
2010-01-09 8 2010-01-05 30 2010-01-04 25
2010-01-11 13 2010-01-06 29 2010-01-06 46
这是我要做的事,
# Create a product list
productName = df['product'].tolist()
# Subsetting
def subtable(df,productName):
return (df[(df['product'] == productName)])
# Subsetting
df_mask = subtable(df, '150ml Mask')
df_lotion = subtable(df, '230ml Lotion')
df_shampoo = subtable(df, '230ml Shampoo')
有什么办法可以让我所有的子集一次用于循环,因为数据框有许多不同的产品。
谢谢你的回答。我尝试过'df [“product”] = df [“product”]。str.split(expand = True)[1]',但某些产品名称没有组织,因为某些产品名称看起来像'0.7OZ Mask UK 6' 。有没有其他方法可以解决这个问题? – Peggy
@peggy产品标签可能有哪些变化?提取产品名称完全取决于您的输入数据。但是,对于您的评论中给出的示例,'df [“product”]。str.split(expand = True)[1]'应该成功从'0.7OZ Mask UK 6'中提取* Mask *。或者你需要*面膜*包括* UK 6 *? – pansen
是的。我需要_Mask UK 6_。但我决定为每个产品分配一个特定的编号,以使分类更容易。除此之外,代码运行得非常好。非常感谢你! – Peggy