我正在尝试获取包含订单中每个项目的列表。我的数据是每行一个订单的格式,可能的项目为列,而每个项目的编号为值。
我已经想出了一种方法来处理独特的物品,但是如果重复的物品被多次包含,我真的很喜欢它。这是一个示例:
import pandas as pd
# Example dataframe
data = {'Egg':[0,2,1],'Toast':[2,1]}
breakfast = pd.DataFrame(data)
# Cycle through columns and replace numbers with food words
value_cols = list(breakfast)
for food in value_cols:
breakfast.loc[breakfast[food] != 0,food] = food
# Create a list of foods
list_of_foods = breakfast.values.tolist()
# Remove empty values
list_of_foods = [[x for x in y if x != 0] for y in list_of_foods]
这给出了这样的列表列表:
[['Toast'],['Egg','Toast'],'Toast']]
但是,我真的想要一个这样的列表列表:
[['Toast','Egg','Toast','Toast']]
我真的不知道如何实现这一目标。我想知道重复行中是否有重复项,但是我也会以我认为的相同顺序重复非重复项。有人有什么想法吗?