gpt4 book ai didi

python - pandas - 基于两列值的分组

转载 作者:太空宇宙 更新时间:2023-11-03 11:44:07 27 4
gpt4 key购买 nike

我有这个数据框:

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 中的关联值是 onetwo => 同样在 group1 中。

A列中onetwo的关联值为foobarcoo => 也在 group1 中。

同样的原则给了我们group2

最好的方法是什么?

最佳答案

这可能是您要找的东西吗,它有点硬编码但具有所需的输出:

import pandas as pd
import numpy as np

df = pd.DataFrame({'A' : ['foo', 'bar', 'foo', 'bar',
'fuz', 'baz', 'fuz', 'coo'],
'B' : ['one', 'one', 'two', 'two',
'three', 'three', 'four', 'one']})
g1 = df[df['A']=='foo']
df['group'] = np.where(df['A'].isin(g1['A'])|df['B'].isin(g1['B']),1,2)

关于python - pandas - 基于两列值的分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43345998/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com