I have this dataframe:
df = pd.DataFrame({'A' : ['foo', 'bar', 'foo', 'bar',
'fuz', 'baz', 'fuz', 'coo'],
'B' : ['one', 'one', 'two', 'two',
'three', 'three', 'four', 'one']})
看起来像这样:
A B
0 foo one
1 bar one
2 foo two
3 bar two
4 fuz three
5 baz three
6 fuz four
7 coo one
我想创建一个新列
group
。该列将汇总列A + B中唯一值的组合。它会查找每个列的唯一值。然后查看组中已有元素的另一列中的值。
结果将如下所示:
A B group
0 foo one 1
1 bar one 1
2 foo two 1
3 bar two 1
4 fuz three 2
5 baz three 2
6 fuz four 2
7 coo one 1
在这个例子中,我们从列A的
foo
开始。所有的foo
都将被归入group1
。相关的B列数值是one
和two
, 也被归入group1
。与A列中
one
和two
相关的数值是foo
, bar
和coo
,也被归入group1
。同样的原则也适用于
group2
。最佳实现方式是什么?