给定一个包含 3 列的数据框,对于每对不同的“A”和“B”,返回“C”的所有唯一值的列表

问题描述 投票:0回答:1

我有以下数据框:

             foo      bar     baz
0   1234_312_GCD     1234     312
1   1234_312_GCD     1234     312
2   1234_312_GCD     1234     312
3   1234_312_GCD     1234     312
4   1234_312_GCD     1234     312
5   0777_666_lcm     0777     666
6   0777_666_lcm     0777     666
7   0777_666_lcm     0777     666
8   0777_666_lcm     0777     666
9   0777_666_lcm     0777     666
10  1234_312_lcm     1234     312
11  1234_312_lcm     1234     312
12  1234_312_lcm     1234     312
13  0777_666_GCD     0777     666
14  0777_666_GCD     0777     666
15  0777_666_GCD     0777     666
16  0777_666_GCD     0777     666

我想返回一个列表列表,其中每个列表包含

foo
的所有不同值 对应于一对不同的值
bar
baz
。对于示例数据框,这将是两个列表的列表,每个列表包含两个字符串:

foo_list = [['1234_312_GCD', '1234_312_lcm'], [0777_666_lcm', '0777_666_GCD']]
python pandas string group-by
1个回答
0
投票
res_list = [group['foo'].unique().tolist() for _, group in df.groupby(['bar', 'baz'])]

将“bar”和“baz”列分组在一起,然后收集唯一值。

© www.soinside.com 2019 - 2024. All rights reserved.