【发布时间】:2019-09-26 14:57:29
【问题描述】:
我正在尝试找出一种方法来确定 DataFrame 中低于预算的所有可能的行组合,所以假设我有一个这样的数据框:
data = [['Bread', 9, 'Food'], ['Shoes', 20, 'Clothes'], ['Shirt', 15, 'Clothes'], ['Milk', 5, 'Drink'], ['Cereal', 8, 'Food'], ['Chips', 10, 'Food'], ['Beer', 15, 'Drink'], ['Popcorn', 3, 'Food'], ['Ice Cream', 6, 'Food'], ['Soda', 4, 'Drink']]
df = pd.DataFrame(data, columns = ['Item', 'Price', 'Type'])
df
数据
Item Price Type
Bread 9 Food
Shoes 20 Clothes
Shirt 15 Clothes
Milk 5 Drink
Cereal 8 Food
Chips 10 Food
Beer 15 Drink
Popcorn 3 Food
Ice Cream 6 Food
Soda 4 Drink
我想找到我可以在特定预算下购买的每一种组合,比如这个例子中的 35 美元,而每种类型只买一种。我想获得一个新的数据框,该数据框由每个组合的行组成,这些组合与自己列中的每个项目一起使用。
我尝试使用 itertools.product 来完成,但这可以组合和添加列,但我真正需要做的是根据另一列中的值组合和添加特定列。我现在有点难过。
感谢您的帮助!
【问题讨论】:
标签: python pandas dataframe itertools