Pandas组内唯一值

7

我有一个数据框需要进行分组,然后再次子分组。从子分组中,我需要返回子分组以及一个列的唯一值。

df = pandas.DataFrame({'country': pandas.Series(['US', 'Canada', 'US', 'US']),
                       'gender': pandas.Series(['male', 'female', 'male', 'female']),
                       'industry': pandas.Series(['real estate', 'shipping', 'telecom', 'real estate']),
                       'income': pandas.Series([1, 2, 3, 4])})

def subgroup(g):
    return g.groupby(['gender'])

s = df.groupby(['country']).apply(subgroup)

从 s 中,我应该如何计算“行业”这个字段的唯一值,以及它是按哪个“性别”分组的?

--------------------------------------------
| US     | male   | [real estate, telecom] |
|        |----------------------------------
|        | female | [real estate]          |
--------------------------------------------
| Canada | female | [shipping]             |
--------------------------------------------
1个回答

5
你不需要定义那个函数,你可以仅使用groupby()和unique()来解决你的问题;
尝试:
df.groupby(['country','gender'])['industry'].unique()

输出:

country  gender
Canada   female                [shipping]
US       female             [real estate]
         male      [real estate, telecom]
Name: industry, dtype: object

希望能帮到你!

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接