PythonPandas条件随机选择-选择具有多个条件的随机项

kd3sttzy  于 2022-12-25  发布在  Python
关注(0)|答案(1)|浏览(173)

尝试从产品列表中进行随机选择:

product_id  type    year_created
1   shirt   2021
2   book    2021
3   chair   2022
4   shirt   2021
5   book    2022
6   shirt   2022
7   shirt   2022
8   desk    2021
9   shirt   2022
10  lamp    2022
11  tv  2021
12  tv  2022

...
希望选择随机的产品ID,但要确保最终结果在每个“发布年份”中具有每个“类型”中的一个。因此,只有一件衬衫来自2021年,一件衬衫来自2022年,一本书来自2021年,一本书来自2022年,等等。
在Python中,除了过滤数据和对每个子集运行随机查询之外,还有什么方法可以做到这一点呢?谢谢!

eagi6jfj

eagi6jfj1#

这就是我所理解的:

import pandas as pd
df = pd.DataFrame(dict(
    product_id=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],
    type=['shirt', 'book', 'chair', 'shirt', 'book', 'shirt', 'shirt', 'desk', 'shirt', 'lamp', 'tv', 'tv'],
    year_created=[2021, 2021, 2022, 2021, 2022, 2022, 2022, 2021, 2022, 2022, 2021, 2022]
))
df
group_size = 1
df.groupby(by=['type', 'year_created'], group_keys=False).apply(lambda x: x.sample(group_size))

相关问题