迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > Python >

计数 Pandas 中每组的唯一值

作者:迹忆客 最近更新:2024/04/20 浏览次数:

当我们处理大型数据集时,有时我们必须将某些功能应用于特定的数据组。例如,我们有一个国家数据集和用于私人事务的私人代码数据集。我们要计算一个国家使用的代码数量。下面列出了计数唯一值的不同方法。

  1. df.groupby().nunique() 方法
  2. df.groupby().agg() 方法
  3. df.groupby().unique() 方法

在以下各节中,我们将使用相同的 DataFrame,如下所示:

import pandas as pd

data = [
    [999, "Switzerland"],
    [113, "Switzerland"],
    [112, "Japan"],
    [112, "Switzerland"],
    [113, "Canada"],
    [114, "Japan"],
    [100, "Germany"],
    [114, "Japan"],
    [115, "Germany"],
]
df = pd.DataFrame(data, columns=["code", "Countries"])
print(df)

以下是输出。

   code    Countries
0   999  Switzerland
1   113  Switzerland
2   112        Japan
3   112  Switzerland
4   113       Canada
5   114        Japan
6   100      Germany
7   114        Japan
8   115      Germany

df.groupby().nunique() 方法

让我们看看 df.groupby().nunique() 函数如何对我们的国家进行分组。

import pandas as pd

data = [
    [999, "Switzerland"],
    [113, "Switzerland"],
    [112, "Japan"],
    [112, "Switzerland"],
    [113, "Canada"],
    [114, "Japan"],
    [100, "Germany"],
    [114, "Japan"],
    [115, "Germany"],
]

df = pd.DataFrame(data, columns=["code", "Countries"])
result = df.groupby("Countries")["code"].nunique()
print(result)

输出:

Countries
Canada         1
Germany        2
Japan          2
Switzerland    3
Name: code, dtype: int64

这表明加拿大使用的是一个代码,德国使用的是两个代码,依此类推。


df.groupby().agg() 方法

该方法与 df.groupby().nunique() 相同。我们需要将 nunique() 函数传递给 agg() 函数。

import pandas as pd

data = [
    [999, "Switzerland"],
    [113, "Switzerland"],
    [112, "Japan"],
    [112, "Switzerland"],
    [113, "Canada"],
    [114, "Japan"],
    [100, "Germany"],
    [114, "Japan"],
    [115, "Germany"],
]
df = pd.DataFrame(data, columns=["code", "Countries"])
result = df.groupby(by="Countries", as_index=False).agg({"code": pd.Series.nunique})
print(result)

输出:

     Countries  code
0       Canada     1
1      Germany     2
2        Japan     2
3  Switzerland     3
.agg({'code': pd.Series.nunique})

它使用 pd.Series.nunique 函数对列 code 进行聚集。


df.groupby().unique() 方法

当你想查看哪个国家使用哪些代码时,此方法很有用。

import pandas as pd

data = [
    [999, "Switzerland"],
    [113, "Switzerland"],
    [112, "Japan"],
    [112, "Switzerland"],
    [113, "Canada"],
    [114, "Japan"],
    [100, "Germany"],
    [114, "Japan"],
    [115, "Germany"],
]
result = df.groupby("Countries")["code"].unique()
print(result)

输出:

Countries
Canada                   [113]
Germany             [100, 115]
Japan               [112, 114]
Switzerland    [999, 113, 112]
Name: code, dtype: object

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

计算 Pandas DataFrame 列的数量

发布时间:2024/04/20 浏览次数:113 分类:Python

本教程解释了如何使用各种方法计算 Pandas DataFrame 的列数,例如使用 shape 属性、列属性、使用类型转换和使用 info() 方法。

更改 Pandas DataFrame 列的顺序

发布时间:2024/04/20 浏览次数:116 分类:Python

在这篇文章中,我们将介绍如何使用 python pandas DataFrame 来更改列的顺序。在 pandas 中,使用 Python 中的 reindex() 方法重新排序或重新排列列。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便