潘达斯群组内的唯一值[英] Unique values within Pandas group of groups

本文是小编为大家收集整理的关于潘达斯群组内的唯一值的处理方法,想解了潘达斯群组内的唯一值的问题怎么解决?潘达斯群组内的唯一值问题的解决办法?那么可以参考本文帮助大家快速定位并解决问题。

问题描述

我有一个需要分组的数据框,然后是子组.从子组中,我需要返回子组以及列的唯一值.

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]             |
--------------------------------------------

推荐答案

您不需要定义该功能,您可以完全解决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

希望它有帮助!

本文地址:https://www.itbaoku.cn/post/1728042.html